灰烬无法阅读财产'发现'未定义的

时间:2017-02-03 09:15:48

标签: javascript ember.js

我们刚为Ember-application安装了一个错误跟踪器,报告的唯一错误是Cannot read property 'find' of undefined。导致此错误的代码位于组件中,如下所示:

this.set('interval', setInterval(() => {
  const current = this.get('counter') - 1;
  this.set('counter', current);
  this.$().find('.countdown-number').text(current); // <- error here
}, 1000));

我不明白这是怎么发生的。 $()如何定义,因为它是ember框架的一部分?

根据错误跟踪器,它适用于许多不同的浏览器,例如最新的Chrome。但是,我无法在任何浏览器中重现错误。

我知道这不是&#34; ember方式&#34;更新div中的文本,但我宁愿不必重建很多,我只想尽可能少地修改bug。

1 个答案:

答案 0 :(得分:1)

如果组件被销毁或未正确呈现,则

this.$()将不确定。请确保仅在组件位于DOM中时调用this.$(),并在willDestroyElement上删除所有可以访问this.$()的事件。