#javascript #angularjs #angularjs-resource #angularjs-factory
#javascript #angularjs #angularjs-ресурс #angularjs-завод
Вопрос:
В моем приложении 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:
Вы не вызываете какой-либо метод 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;
}
}
});