获取typescript文件中指令的输入值

时间:2017-08-06 16:55:11

标签: angular typescript angularjs-directive ionic2

我传递给指令的输入正确显示在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()错过这个值的原因。但是如何在更新时获得它?

1 个答案:

答案 0 :(得分:1)

尝试使用ngOnChanges挂钩。如果你真的改变了正确的价值,那么你应该把它放在那个钩子里。

ngOnChanges() {
   console.log('this.location: ' + this.location );
}

另一种方法是在*ngIf中包装组件:

<test-info *ngIf="location" [location]='location'> </test-info>