簡體   English   中英

Ember.js觀察者

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM