2016-08-22 2 views
0

Ich möchte auf eine Variable Beobachter verwenden, die in Betrieb ist, ist, dass mein Code: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')); 
}), 

, dass der Fehler ist:

Error while processing route: index this.get is not a function

Wenn ich zu zeigen, ich versucht, der Fortschritt im Alarm:

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

Alles funktioniert, aber nicht in einem Beobachter. Was soll ich machen?

+2

'Ember.observer ('uploader.progress', ...' –

+0

Es funktionierte Danke –

+0

Haben Sie die Dokumentation prüfen 'Ember.observer' –

Antwort

1

this Kontext ist nicht gültig. Wie von KITLER vorgeschlagen, sollte das folgende Ihr Problem lösen.

Ich würde vorschlagen, den Beobachter nicht zu überlasten, können Sie versuchen, berechnete Eigenschaft zu verwenden. Wenn Sie nur Fortschritt allein zeigen möchten, dann brauchen Sie keinen Beobachter, Sie können einfach this.get('uploader.progress') oder Ember.computed.alias('uploader.progress') verwenden.

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