- Angular 教程
- Angular - 首页
- Angular - 概述
- Angular - 功能
- Angular - 优点与缺点
- Angular 基础
- Angular - 环境搭建
- Angular - 第一个应用
- Angular - MVC 架构
- Angular 组件
- Angular - 组件
- Angular - 组件生命周期
- Angular - 视图封装
- Angular - 组件交互
- Angular - 组件样式
- Angular - 嵌套组件
- Angular - 内容投影
- Angular - 动态组件
- Angular - 元素
- Angular 模板
- Angular - 模板
- Angular - 文本插值
- Angular - 模板语句
- Angular - 模板中的变量
- Angular - SVG 作为模板
- Angular 数据绑定
- Angular - 数据绑定及其类型
- Angular - 数据绑定
- Angular - 事件绑定
- Angular - 属性绑定
- Angular - 属性绑定
- Angular - 类和样式绑定
- Angular 指令
- Angular - 指令
- Angular - 内置指令
- Angular 管道
- Angular - 管道
- Angular - 使用管道转换数据
- Angular 依赖注入
- Angular - 依赖注入
- Angular HTTP 客户端编程
- Angular - 服务
- Angular - HTTP 客户端
- Angular - 请求
- Angular - 响应
- Angular - GET 请求
- Angular - PUT 请求
- Angular - DELETE 请求
- Angular - JSON-P
- Angular - 使用 HTTP 进行 CRUD 操作
- Angular 路由
- Angular - 路由
- Angular - 导航
- Angular - Angular Material
- Angular 动画
- Angular - 动画
- Angular 表单
- Angular - 表单
- Angular - 表单验证
- Angular Service Workers & PWA
- Angular - Service Workers & PWA
- Angular 测试
- Angular - 测试概述
- Angular NgModule
- Angular - 模块介绍
- Angular 高级
- Angular - 身份验证与授权
- Angular - 国际化
- Angular - 可访问性
- Angular - Web Workers
- Angular - 服务器端渲染
- Angular - Ivy 编译器
- Angular - 使用 Bazel 构建
- Angular - 向后兼容性
- Angular - 响应式编程
- Angular - 指令和组件之间的数据共享
- Angular 工具
- Angular - CLI
- Angular 其他
- Angular - 第三方控件
- Angular - 配置
- Angular - 数据显示
- Angular - 装饰器和元数据
- Angular - 基本示例
- Angular - 错误处理
- Angular - 测试和构建项目
- Angular - 生命周期钩子
- Angular - 用户输入
- Angular - 最新动态?
- Angular 有用资源
- Angular - 快速指南
- Angular - 有用资源
- Angular - 讨论
Angular - 依赖注入
依赖注入是在运行时添加组件功能的能力。让我们来看一个示例以及实现依赖注入的步骤。
步骤 1 - 创建一个单独的类,该类具有可注入装饰器。可注入装饰器允许将此类的功能注入并用于任何 Angular JS 模块。
@Injectable() export class classname { }
步骤 2 - 接下来,在您的 appComponent 模块或您想要使用该服务的模块中,您需要在 @Component 装饰器中将其定义为提供程序。
@Component ({ providers : [classname] })
让我们来看一个如何实现此目标的示例。
步骤 1 - 为名为 app.service.ts 的服务创建一个 ts 文件。
步骤 2 - 将以下代码放入上面创建的文件中。
import { Injectable } from '@angular/core'; @Injectable() export class appService { getApp(): string { return "Hello world"; } }
关于上述程序,需要注意以下几点。
从 angular/core 模块导入 Injectable 装饰器。
我们正在创建一个名为 appService 的类,该类用 Injectable 装饰器装饰。
我们正在创建一个名为 getApp 的简单函数,该函数返回一个名为“Hello world”的简单字符串。
步骤 3 - 在 app.component.ts 文件中放置以下代码。
import { Component } from '@angular/core'; import { appService } from './app.service'; @Component({ selector: 'my-app', template: '<div>{{value}}</div>', providers: [appService] }) export class AppComponent { value: string = ""; constructor(private _appService: appService) { } ngOnInit(): void { this.value = this._appService.getApp(); } }
关于上述程序,需要注意以下几点。
首先,我们在 appComponent 模块中导入我们的 appService 模块。
然后,我们在此模块中将服务注册为提供程序。
在构造函数中,我们定义一个名为 _appService 的变量,其类型为 appService,以便可以在 appComponent 模块中的任何位置调用它。
例如,在 ngOnInit 生命周期钩子中,我们调用了服务的 getApp 函数并将输出分配给 AppComponent 类的 value 属性。
保存所有代码更改并刷新浏览器,您将获得以下输出。
广告