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 回答