在AngularJS中调用资源成功回调的服务功能

时间:2013-10-24 22:35:39

标签: angularjs angularjs-service

我有一个进行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。如何在回调中访问我的服务中的功能?我接近这个问题了吗?

1 个答案:

答案 0 :(得分:2)

在回调中,'this'成为你的回调,所以要访问它,你可以在变量中链接父范围。

我建议:

.service('MyService', function () {
    var that = this;
    return {
            myCallback : function () {
                    that.myMethod();
            }
    }
});