2016-08-22 5 views
0
나는 서비스에있는 변수에 관찰자를 사용하려면

, 그건 내 코드입니다 :
Ember.js 관찰자

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

내가 보여 주려 해요 : 오류의

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')); 
}), 

경계 상황 :

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

모든 것이 작동하지만 관찰자에게는 작동하지 않습니다. 어떻게해야합니까?

+2

'Ember.observer ('uploader.progress'... '그것은 일 –

+0

감사 –

+0

당신이 Ember.observer''에 대한 문서를 확인 했 –

답변

1

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/