1

次のような工場があります。

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

それが提供するのは、Web サービスから物を取得するメソッドだけであり、答えを に保存したいと考えていますstate.collectionOfThings。ただし、$httpsuccess メソッドが呼び出されるとthis、ファクトリを参照しなくなり、 を参照しwindowます。これは非常に簡単なことだと思っていたでしょうが、わかりません。

からの結果をファクトリのフィールドに入力するにはどうすればよい$http.getですか?

4

1 に答える 1

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;
}]);
于 2013-08-22T14:09:15.543 に答える