使用$ resource更改angularjs工厂中的变量

时间:2014-06-21 15:47:33

标签: javascript angularjs angularjs-resource angularjs-factory

在我的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的值被指令更改,我需要将其值绑定到控制器范围内的值。

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

1 个答案:

答案 0 :(得分: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;
        }
    }
});