我想访问myVariable
内的init()
,但变量为undefined
,但我可以访问convert()
内的变量。有什么建议我在这里缺少什么?
export const MyComponent: ng.IComponentOptions = {
templateUrl: 'MyView.html',
bindings: {
myVariable: '<',
},
controller: common.createController(MyController)
};
export class MyController {
public myVariable: MyVariable;
constructor($scope) {
this.scope = $scope;
this.init().then(() => {
this.convert();
});
private init(): Promise<void> {
console.log("init(): ", this.myVariable); //Error --> undefined
//Call REST API and return a promise
}
private convert(): void {
console.log("convert(): ", this.myVariable); //No Error
}
}
答案 0 :(得分:1)
通常会发生这种情况,因为在基础构造函数之前调用init()
- 基本构造函数通常是将变量设置在视图库中。
我不知道你正在使用什么视图库,但它看起来像有角度的。在这种情况下,angular将在构造函数运行后设置绑定(它需要在分配绑定之前创建类,并且因为它不提供基类,所以它不能在构造函数中使用它进行绑定)< / p>
Angular API公开类似于react的生命周期方法,你需要在构造函数和绑定完成后调用的$onInit
钩子。
您可以在此处阅读更多内容https://docs.angularjs.org/guide/component