измените переменную на фабрике angularjs, используя $resource

#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;
        }
    }
});