我传递给指令的输入正确显示在html文件中,但我没有在typescript文件中获取它的值。如何在打字稿文件中访问它?
以下是一个例子:
我有一个指令,在test-info.ts
中定义如下:
@Component({
selector: 'test-info',
templateUrl: 'test-info.html'
})
export class TestInfo {
@Input('location') location;
constructor(...) {
console.log('this.location: ' + this.location ); //------> Prints null
}
在test-info.html
里面我有:
{{location}}
我在另一个html user.html
文件中使用此指令:
<test-info [location]='location'> </test-info>
位置在user.html
中正确显示,但.ts文件中的console.log命令显示为空。
修改
在user.ts
中,在Ajax调用中分配位置。很可能这就是构造函数或ngOnInit()错过这个值的原因。但是如何在更新时获得它?
答案 0 :(得分:1)
尝试使用ngOnChanges
挂钩。如果你真的改变了正确的价值,那么你应该把它放在那个钩子里。
ngOnChanges() {
console.log('this.location: ' + this.location );
}
另一种方法是在*ngIf
中包装组件:
<test-info *ngIf="location" [location]='location'> </test-info>