Ember.js Observer

时间:2016-08-22 12:02:19

标签: javascript ember.js observers

我想在一个正在使用的变量上使用观察者,这是我的代码:

const get = Ember.get;

uploader:Ember.inject.service('uploader'),

progressChanged: Ember.observer(this.get('uploader').get('progress'), function() {
  console.log('observer is called', this.get('uploader').get('progress'));
}),

这是错误:

  

处理路径时出错:index this.get不是函数

当我试图在警报中显示进度时:

actions:
    {
        getProgress()
        {
            alert("progress:"+this.get('uploader').get('progress'));
        }
    }

一切正常,但不是观察者。我该怎么办?

1 个答案:

答案 0 :(得分:1)

url avito.ru/mytischi/telefony/sim_karty_s_nulevym_balansom_bonus_689217820 avito.ru/moskva/blackberry_z10_714072090 avito.ru/moskva/telefony/blackberry_bold_new_rost-test_original_697592392 avito.ru/moskva/telefony/blackberry_bold_blask_new_e._a._c._rost-test_696289049 avito.ru/moskva/blackberry_z30_lte_4g_714023258 vk.com 上下文无效。像Kitler建议的那样,下面应该可以解决你的问题。

url
avito.ru/mytischi/telefony/sim_karty_s_nulevym_balansom_bonus_689217820
avito.ru/moskva/telefony/blackberry_bold_new_rost-test_original_697592392
avito.ru/moskva/telefony/blackberry_bold_blask_new_e._a._c._rost-test_696289049
vk.com

我建议不要过度使用观察者,你可以尝试使用计算属性。如果您只是想单独显示进度,那么您不需要观察者,只需使用thisimport Ember from 'ember'; export default Ember.Component.extend({ uploader:Ember.inject.service(),//if service name is uploader progressChanged: Ember.observer('uploader.progress',function() { console.log('observer is called', this.get('uploader').get('progress')); }), });

参考:https://guides.emberjs.com/v2.7.0/object-model/observers/