0

在我的 AngularJS 应用程序中,我想要一个工厂,它有一种方法可以通过使用 $resource 来更改工厂本身的变量。到目前为止,我编写的代码如下:

factories.factory('FooFactory', function ($resource) {
    var foo = null;
    return {
        query: function () {
            foo = $resource(baseUrl + '/someUrl/:query', {}, {
                query: { method: 'GET', isArray: true }
            });
        },
        getFoo: function () {
            return foo;
        }
    }
});

因此,在调用时,FooFactory.query({query: "someString"});我希望工厂将 foo 的值更改为从资源接收到的值。

我需要这种行为,因为 foo 的值由指令更改,并且我需要将其值绑定到控制器范围内的值。

但是,上面的代码似乎不起作用。我究竟做错了什么?

4

1 回答 1

1

你不调用任何方法,resource你只初始化它。尝试这个:

factories.factory('FooFactory', function ($resource) {
    var foo = null;
    return {
        query: function () {
            foo = $resource(baseUrl + '/someUrl/:query', {}, {
                query: { method: 'GET', isArray: true }
            }).query();
        },
        getFoo: function () {
            return foo;
        }
    }
});
于 2014-06-21T16:24:41.100 回答