国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

Angular 4依賴注入學習教程之InjectToken的使用(八)

2024-05-06 15:16:20
字體:
來源:轉載
供稿:網友

學習目錄

Angular 4 依賴注入教程之一 依賴注入簡介 Angular 4 依賴注入教程之二 組件服務注入 Angular 4 依賴注入教程之三 ClassProvider的使用 Angular 4 依賴注入教程之四 FactoryProvider的使用 Angular 4 依賴注入教程之五 FactoryProvider配置依賴對象 Angular 4 依賴注入教程之六 Injectable 裝飾器 Angular 4 依賴注入教程之七 ValueProvider的使用 Angular 4 依賴注入教程之八 InjectToken的使用

本文主要給大家介紹的是關于Angular 4依賴注入之InjectToken使用的相關內容,分享出來供大家參考學習,下面來一起看看詳細的介紹:

本系列教程的開發環境及開發語言:

Angular 4 + Angular CLI TypeScript

基礎知識

OpaqueToken 簡介

OpaqueToken 用于創建可在 Provider 中使用的 Token。

OpaqueToken 類的定義

export class OpaqueToken { constructor(protected _desc: string) {} toString(): string { return `Token ${this._desc}`; }}

OpaqueToken 類的使用

import { ReflectiveInjector } from '@angular/core';var t = new OpaqueToken("value");var injector = ReflectiveInjector.resolveAndCreate([ {provide: t, useValue: "bindingValue"}]);injector.get(t); // "bindingValue"

InjectionToken 簡介

InjectionToken 用于創建可在 Provider 中使用的 Token。

InjectionToken 類的定義

export class InjectionToken<T> extends OpaqueToken { private _differentiate_from_OpaqueToken_structurally: any; constructor(desc: string) { super(desc); } toString(): string { return `InjectionToken ${this._desc}`; }}

InjectionToken 類的使用

import { ReflectiveInjector } from '@angular/core';var t = new InjectionToken<string>("value");var injector = ReflectiveInjector.resolveAndCreate([ {provide: t, useValue: "bindingValue"}]);injector.get(t); // "bindingValue"

InjectionToken

在介紹 InjectionToken 相關內容之前,我們先回顧一下 "ValueProvider的使用" 這篇中我們介紹的內容:

使用 ValueProvider

@NgModule({ ..., providers: [ { provide: 'apiUrl', useValue: 'http://localhost:4200/heros' } ], bootstrap: [AppComponent]})export class AppModule { }

更新 HeroService 服務

@Injectable()export class HeroService { constructor(private loggerService: LoggerService, private http: Http, @Inject('apiUrl') private apiUrl) { } getHeros(): Observable<Array<{ id: number; name: string }>> { this.loggerService.log('Fetching heros...'); return this.http.get(this.apiUrl) .map(res => res.json()) }}

為了能夠更方便地管理與維護 apiUrl 地址,我們利用了 ValueProvider 和 Inject 裝飾器。一切看起來非常順利,但某一天假設我們引入了一個第三方庫 - third-lib.ts,該文件的內容如下所示:

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 武隆县| 达日县| 盘山县| 漯河市| 吴旗县| 晴隆县| 荔浦县| 肇州县| 平罗县| 延吉市| 阳朔县| 保靖县| 梁平县| 平阳县| 南平市| 荥阳市| 广丰县| 陈巴尔虎旗| 长汀县| 水富县| 阳江市| 滦南县| 仙游县| 巴塘县| 卢龙县| 漳浦县| 衡南县| 略阳县| 汉源县| 清涧县| 株洲市| 松滋市| 永新县| 铜鼓县| 泗洪县| 宁陕县| 于田县| 乌审旗| 铅山县| 洪泽县| 盘锦市|