在typescript回调方法中声明类属性

时间:2017-04-25 19:07:35

标签: javascript angular typescript

我有一个订阅pub子消息服务的事件的方法。在回调中,我想要定义一个类属性。当我尝试分配属性值时,它返回undefined。我理解这提到了这个'从班级改为方法,但是我需要它才能访问班级'这个'属性。如何将值分配给类属性' this.icon'在我的回调方法里面?

{{1}}

1 个答案:

答案 0 :(得分:0)

由于这是一个异步事件,无论你做什么,this.icon最初都会在回调之外被定义。请查看此信息,了解更多信息:How do I return the response from an Observable/http/async call in angular2?

您提到您正在通过icon@Input()传递给孩子,然后在孩子中使用ngOnChanges,这会抓住icon发生的变化。在ngOnChanges中,您可以创建一个条件,执行您想要执行的任何逻辑,之后将值设置为图标,这样就可以在您的孩子中执行以下操作:

@Input() icon;

ngOnChanges() {
  if(this.icon) {
    console.log('icon is set, now do something with it!')
  }
}

如果你对视图有疑问,有一些可能的解决方案,比如使用安全导航操作符,这里有更多信息:Cannot read property "totalPrice" of undefined

这是一个

Demo

希望这有帮助! :)