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 に答える