0

REST 呼び出しを行うサービスがあります。残りの呼び出しが完了したら (つまり、データが利用可能になったら)、そのデータを処理するサービスの関数を呼び出したいと思います。

.service('EventService', function(eventRestApi, $scope) { 
     var internalData = { messages : [], headers: [], consolidatedEvents : {} }
     return {    
         loadEvents : function(beginTimeMillis, endTimeMillis) { 
            this.getEvents(beginTimeMillis, endTimeMillis, internalData, null)
                .then(function(result){
                    internalData.consolidatedEvents = this.consolidateEvents(internalData.events)
                })  
         },
         getEvents : function() {...},
         consolidatedEvents : function() {...},
     }

thisがないというエラーが表示されますconsolidateEvents。コールバックでサービスの関数にアクセスするにはどうすればよいですか? 私はこの問題に間違ってアプローチしていますか?

4

1 に答える 1

2

コールバックでは、「this」がコールバックになるため、それにアクセスするには、変数で親スコープをリンクできます。

私はそれをお勧めします:

.service('MyService', function () {
    var that = this;
    return {
            myCallback : function () {
                    that.myMethod();
            }
    }
});
于 2013-10-24T22:43:23.543 に答える