AngularJs中的$ http.get成功无法访问调用它的工厂

时间:2013-08-22 14:06:57

标签: angularjs

我有一个看起来有点像这样的工厂:

app.factory('MyFactory',['$http',function($http){
    return {
        state: {
            collectionOfThings: {}
        },
        getThings: function() {
            $http.get(url).success(function(data) {
                this.state.collectionOfThings = data;
            });
        }
    };
}]);

它提供的是一种从Web服务获取内容的方法,我想将答案存储在state.collectionOfThings中。但是,当调用$http成功方法时,this不再引用工厂并引用window。我原本以为这是一件非常简单的事情,但我无法弄清楚。

如何使用$http.get

的结果填充工厂中的字段

1 个答案:

答案 0 :(得分:4)

app.factory('MyFactory',['$http',function($http){
    var obj = {};
    obj.state = {
        collectionOfThings: {}
    };
    obj.getThings = function() {
        $http.get(url).success(function(data) {
            obj.state.collectionOfThings = data;
        });
    }
    return obj;
}]);