Angular 使用 Injector API 人工获取依赖注入的实例

这个例子的完整源代码:

import { Component, OnInit, Injectable, Injector } from '@angular/core';

@Injectable()
class UsefulService {
    constructor(){
        console.log("Useful Service is created");
    }
}

@Injectable()
class NeedsService {
  constructor(public service: UsefulService) { 
      console.log("NeedsService is created");
  }
}

const injector = Injector.create({
  providers:
    [{ provide: NeedsService, deps: [UsefulService] }, { provide: UsefulService, deps: [] }]
});
console.log(' true or false?' , injector.get(NeedsService).service instanceof UsefulService);

@Component({
  selector: 'manual_di',
  template: '<p>Manual DI </p>'
})
export class ManualDIComponent implements OnInit {

  constructor() { 
  }

  ngOnInit(): void {
  }
}

单步调试

Injector.create

由实现源代码可见,Angular NgModule providers 元数据支持 name 参数:

Angular 使用 Injector API 人工获取依赖注入的实例

Angular 使用 Injector API 人工获取依赖注入的实例

上一篇:【PHP】编译安装 PHP5.6.13遇到问题以及解决方案


下一篇:基于HBase做Storm 实时计算指标存储