类构造函数在TypeScript Ionic 2中输入的内容是什么?

时间:2016-09-18 16:14:07

标签: angular ionic2

我是Ionic2和Angular的新手。将变量声明为构造函数输入在类中做什么?

import { LoadingController } from 'ionic-angular';

export class MyPage {
  constructor(public loadingCtrl: LoadingController <-----) {
  }

  presentLoading() {
    let loader = this.loadingCtrl.create({
      content: "Please wait...",
      duration: 3000
    });
    loader.present();
  }
}

1 个答案:

答案 0 :(得分:3)

  

将变量声明为构造函数输入

构造函数参数类似于允许传递参数的方法或函数参数

let page = new MyPage(aLoadingController)

除了您自己不创建MyPage个实例,但Angular2的依赖注入(DI)会为您完成。

如果找到与参数类型(或@Inject(xxx))注释匹配的提供者(如果有),则DI查找它的注册表,然后将找到的提供者创建的实例传递给{{ 1}}来电。

为此,Angular2需要类似new MyPage(...)@Page()@Component()@Directive()@Pipe()的装饰器。如果找到这样的装饰器,它会分析构造函数参数列表以了解需要注入的内容。

如果@Injectable()public前置于构造函数参数,则还会创建实例级属性,并自动为此属性分配传递的值(纯TypeScript功能)