ng4.x 注入器
在应用启动时,angular会首先创建一个应用级的注入器,然后将模块中声明的提供器都注册到这个注入器中,然后angular会创建启动模块所需要的主组件bootstrap:[AppComponent],同时,应用级的这个注入器会为这个主组件创建一个组件级的注入器,并将组建中什么的提供器注册到这个组件级的注入器;当子组件创建时,它的父组件也会为这个子组件创建一个注入器,将子组件声明的注入器注册上去
angular框架的注入点只有一个:constructor(**){}
手动注入:【实战中应避免这种写法】
import { Component, OnInit, Injector } from '@/angular/core';
import { Product, ProductService } from "../shared/product.service";
export class ProductComponent implement OnInit {
product:Product;
private productService:ProductService;
constructor( private injector:Injector){
this.productService = injector.get(ProductService);
}
ngOnInit() {
this.product = this.productService.getProduct();
}
}
这样写:
export class ProductComponent implement OnInit {
product:Product;
constructor( private productService:ProductService){ }
ngOnInit() {
this.product = this.productService.getProduct();
}
}