[英]Ember.js Observer
我想在服務中的變量上使用觀察器,這是我的代碼:
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'));
}),
那是錯誤:
處理路線時出錯:索引this.get不是函數
當我嘗試顯示警報進度時:
actions:
{
getProgress()
{
alert("progress:"+this.get('uploader').get('progress'));
}
}
一切正常,但不是在觀察者中。 我該怎么辦?
this
上下文無效。 就像Kitler建議的一樣,以下內容可以解決您的問題。
import 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'));
}),
});
我建議不要過度使用觀察器,您可以嘗試使用計算屬性。 如果您只想顯示進度,則不需要觀察者,您可以簡單地使用this.get('uploader.progress')
或通過Ember.computed.alias('uploader.progress')
。
參考: https : //guides.emberjs.com/v2.7.0/object-model/observers/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.