angular入门基础教程(九)依赖注入(DI)

news2025/1/10 20:44:05

依赖注入

Angular 中的依赖注入(DI)是框架最强大的特性之一。可以将依赖注入视为 Angular 在运行时为你的应用 提供所需资源的能力。依赖项可以是服务或其他资源。

使用服务的一种方式是作为与数据和 API 交互的方式。为了使服务可重用,应该将逻辑保留在服务中,并在需要时在整个应用程序中共享它。

创建服务

创建服务,需要使用 Angular CLI 命令 ng generate service。

  • 文件里面必须引入 Injectable,配置装饰器
import { Injectable } from "@angular/core";

@Injectable({
  providedIn: "root",
})
export class CarServiceService {
  cars = ["Sunflower GT", "Flexus Sport", "Sprout Mach One"];
  getCars() {
    return this.cars;
  }
  getCar(id: number) {
    return this.cars[id];
  }
}
  • 需要使用这个服务的组件中
import { Component, inject } from "@angular/core";
import { CarServiceService } from "../../services/car-service.service";
@Component({
  selector: "app-about", //这个名字是我们在被的组件中使用的时候,需要写这个名字作为组件名
  standalone: true,
  imports: [FormsModule],
  templateUrl: "./about.component.html",
  styleUrl: "./about.component.css",
})
export class AboutComponent {
  carServices = inject(CarServiceService);
  display = "";
  constructor() {
    this.display = this.carServices.getCars().join(" ❤ ");
  }
}

在这里插入图片描述
这样我们就实现了ng中的依赖注入

作为构造函数注入

这里有点类似于java中的@Autowired,思想差不多,感觉

export class AboutComponent {
  // carServices = inject(CarServiceService);
  username = "";
  display = "";

  constructor(private carServices: CarServiceService) {
    this.display = this.carServices.getCars().join(" ❤❤ ");
  }
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1960021.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

晋升有望,5本易录用的计算机三四区潜力刊,通过率>50%,2个月超速接收,好发

今天模术狮给大家整理了5本让你晋升有望!易录用的计算机三区四区潜力刊,通过率>50%,2个月超速接收,好发! 1 DATA MINING AND KNOWLEDGE DISCOVERY 期刊简介:数据收集、存储和分发方面的进步产生…

Qt系统机制

Qt系统 Qt文件概述输入输出设备类QFileQFileInfoQt多线程Qt多线程常用API使用Qt多线程 线程安全互斥锁读写锁条件变量信号量 Qt网络QUdpSocketQNetworkDatagram设计一个UDP回显服务器QTcpServerQTcpSocketTcp版本的回显服务器HttpClient核心API Qt 音频Qt视频 Qt文件概述 ⽂件操…

阿里云服务器系统盘扩容后,宝塔面板不显示新容量的问题

1. 安装 growpart 扩展 yum install -y cloud-utils-growpart 2. 运行fdisk -l命令查看磁盘实际大小。 fdisk -l 用于:查看磁盘实际大小 说明:磁盘(/dev/vda)实际大小为:250 G。 3. 运行df -h命令查看磁盘分配大小。 df -h 用于:查看磁盘分配大小 4. 自适应分区扩容 g…

2024 Navicat Premium最新版简体中文版破解激活永久图文详细教程(亲测可用)

1.官网下载:下载地址 2.百度网盘下载:下载地址 3.未安装过的用户可直接跳过该步骤,如果已安装Navicat,记得先卸载干净,防止破解失效,卸载完成后执行补丁压缩包中的Navicat.bat脚本(一闪而过表示…

热门景区精准客流统计也能如此简单做到了

在热门景区,游客如织,如何实现精准的客流统计成为了景区管理者关注的重点。令人欣喜的是,如今这一难题已经有了简单而有效的解决方案。 一、景区应用客流统计的原因 首先,热门景区承载着巨大的游客流量,为了确保游客的…

如何使用git拉取gitee上面的项目/代码?(超简单)

一、下载git软件 下载地址:git官网地址 1.点击右边小电脑上的按钮下载 2.选择自己电脑对应的系统 3.基本都是默认,这里需要勾一下就ok 4.正在安装 2.使用git软件 1.如何打开git 找到你想要操作的文件夹,右击open git bash here就可以…

云计算实训16——关于web,http协议,https协议,apache,nginx的学习与认知

一、web基本概念和常识 1.Web Web 服务是动态的、可交互的、跨平台的和图形化的为⽤户提供的⼀种在互联⽹上浏览信息的服务。 2.web服务器(web server) 也称HTTP服务器(HTTP server),主要有 Nginx、Apache、Tomcat 等。…

【参会邀请】第四届区块链技术与信息安全国际会议(ICBCTIS 2024)诚邀相聚江城!

我们诚挚地邀请您参与第四届区块链技术与信息安全国际会议(ICBCTIS 2024)。本届会议将于2024年8月17日~19日在中国武汉召开。会议将围绕区块链技术与信息安全等相关研究领域,特邀国内外数位在此领域学术卓越的学者专家做相关致辞与报告&#…

一行Python代码实现神奇效果:创意编程实例

文末赠免费精品编程资料~~ 1. 基础中的魔法:打印艺术 目标:用一行代码打印出一个简单的图案,比如心形。 print( .join([**i for i in range(1, 6)] [ *4] [**i for i in range(5, 0, -1)]))解析: 我们利用列表推导式生成两部…

Halcon深度学习分类模型

1.Halcon20之后深度学习支持CPU训练模型,没有money买显卡的小伙伴有福了。但是缺点也很明显,就是训练速度超级慢,推理效果也没有GPU好,不过学习用足够。 2.分类模型是Halcon深度学习最简单的模型,可以用在物品分类&…

说真的,内裤袜子丢进洗衣机比手洗好!内裤袜子洗衣机推荐

内裤和袜子作为日常生活中不可或缺的贴身衣物,其清洁卫生尤为重要,但频繁的洗涤工作往往令人感到繁琐。正是因为这一清洗需求,内裤袜子洗衣机应运而生,它不仅为我们的生活带来了便利,更体现了对个人卫生和生活品质的重…

货拉拉论文入选亚太消费者研究会议及亚太营销国际学术会议

近日,亚太消费者研究会议(AP-ACR)召开。本次会议上,货拉拉和香港中文大学合作就论文《Why Showing Multiple Options Simultaneously Makes Customers Less Picky》(《为什么同步显示多个选项会使消费者变得更不挑剔》)进行主题报告。此前,本篇论文也曾在第二届亚太营销国际学术…

libevent入门篇

文章目录 概述下载编译目录samplehello-world初始化创建监听器处理连接处理信号 build 小结 概述 libevent 和 libev 都是由 c 实现的异步事件库;注册异步事件,检测异步事件,根据事件的触发先 后顺序,调用相对应回调函数处理事件…

命令行使用ADB,不用root,完美卸载小米预装软件

ADB安装与运行 install java 下载安装 注意选择JDK17以上版本 https://www.oracle.com/java/technologies/downloads/#jdk22-windows 选择中间的安装文件下载 编辑系统变量 C:\Program Files (x86)\Java\jdk-22 C:\Program Files (x86)\Java\jdk-22\bin 把C:\Progra…

YOLOv9训练完成后的权重文件夹中绘制的图像和txt,val_loss一直为0

现象: 在利用YOLOv9源码进行模型训练的时候,在训练完成后,权重文件夹中的图像和txt文件,val_loss一直为0。 原因: 在训练过程中,为计算验证的loss 修改: 在val_dual.py的197行,将原…

安防监控视频平台LntonAIServer视频监控管理平台裸土检测算法

LntonAIServer裸土检测算法代表了一种先进的土地监测技术,它利用人工智能的强劲能力,实现了对裸土区域的自动识别和实时监测。该算法的推出,为环境保护、农业管理以及城市规划等多个领域提供了创新的解决方案,其应用前景广阔&…

2024年《开学第一课》手机在线观看高清直播入口直达词令是什么?

2024年《开学第一课》播出时间是:2024年9月1日20:00 将在央视CCTV-1电视频直播,手机上观看2024年《开学第一课》高清直播或投屏到电视观看入口直达词令。详情请查如下说明: 2024年《开学第一课》手机在线观看高清直播入口直达词令是什么&…

【云原生】Kubernetes----k8s免密使用harbor私有仓库

目录 引言 一、搭建Harbor仓库 (一)关闭防护 (二)安装docker (三)安装docker-compose (四)安装harbor-offline 1.获取安装包 2.修改配置文件 3.启动服务 4.登录仓库验证 二…

适合大学生体质的开发者工具介绍

在这个快速变化的技术世界中,开发者们总是在寻找能够提升工作效率、优化代码质量的工具。本篇博客将带领您深入了解一系列专为开发者设计的实用工具,它们不仅能帮助您简化开发流程,还能增强代码的可读性和可维护性。 从代码编辑器到版本控制…