AngularJS将变量传递给服务

时间:2014-08-05 14:29:18

标签: angularjs angularjs-service angularjs-resource

我有这个工厂:

factory('getJson', ['$resource', function($resource) {
    return $resource('json/greetings.json', {}, {
      query: {method:'GET', isArray:true}
    });
  }]);

文件是硬编码的'greetings.json',我希望工厂根据我视图中的复选框获取文件:

<li><input type="checkbox" ng-model="includeVeggies" />Veggies</li>
<li><input type="checkbox" ng-model="includeGreetings" />Greetings</li>

任何想法我该怎么做?

1 个答案:

答案 0 :(得分:7)

您可以返回一个功能:

.factory('getJson', ['$resource', function($resource) {
    return function (file) {
        return $resource(file, {}, {
            query: {method:'GET', isArray:true}
        });
    };
}]);

然后在你的控制器中:

.controller('MyController', ['getJson', function (getJson) {
    getJson('json/greetings.json');
});

Here's a Plnkr