在我的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的值被指令更改,我需要将其值绑定到控制器范围内的值。
但是,上面的代码似乎不起作用。我做错了什么?
答案 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;
}
}
});