【发布时间】:2016-04-18 00:24:01
【问题描述】:
所以我正在查看一个使用 Angular 2 和 Typescript 的 ionic 2 项目,并且对如何设置成员属性有点困惑。查看下面的示例,Angular 会自动在构造函数参数中注入依赖项。在 nav 的情况下,我们将实例成员 nav 显式设置为构造函数传入的内容。在Firebase auth的情况下,我们并没有显式地将它设置为成员变量,但是我们仍然可以通过登录方法中的this.auth来访问它,怎么会呢?如果我们用this.nav 尝试同样的事情,除非我们明确设置实例变量,否则它不会工作。在构造函数参数中使用 private 关键字有什么作用 - 在类的属性定义和函数参数中声明私有关键字是否多余?如果它们具有相同的名称,它会神奇地将构造函数变量绑定到类属性吗?
export class LoginPage {
nav:NavController;
private auth: FirebaseAuth;
constructor(nav:NavController, private auth: FirebaseAuth) {
this.nav = nav; // if we don't do this, the setRoot below in login doesn't do anything
//this.auth = auth; // how come we don't have to set the member variable here and it's still available in the login method
}
login() {
this.auth.login().then(authData =>{
this.nav.setRoot(TabsPage);
});
}
}
【问题讨论】:
标签: typescript angular