AngularJS 将变量传递给服务

标签 angularjs angularjs-service angularjs-resource

我有这个工厂:

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

该文件是硬编码的,'greetings.json',我希望工厂根据我 View 中的复选框获取文件:
<li><input type="checkbox" ng-model="includeVeggies" />Veggies</li>
<li><input type="checkbox" ng-model="includeGreetings" />Greetings</li>

知道我该怎么做吗?

最佳答案

您可以返回一个函数:

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

然后在您的 Controller 中:
.controller('MyController', ['getJson', function (getJson) {
    getJson('json/greetings.json');
});

Here's a Plnkr .

关于AngularJS 将变量传递给服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25141341/

相关文章:

angularjs - 如何向 Angular 的 Controller /$scope 提供初始数据?

html - 单击时将字段类型从 div 转换为输入

javascript - 没有 $scope 的 AngularFire 3 路绑定(bind)

javascript - 将 JSON 对象从 Angular 服务传递给指令

javascript - AngularJS - 未知提供者

javascript - angularjs从服务获取错误消息到 Controller

javascript - 如何在单元测试中触发 element.on ('mouseleave' ) 来调用我的 AngularJS 函数

angularjs - 初始化非注入(inject) angular.service

angularjs - 在另一种形式的成功回调中使用 AngularJS 和 bluimp 上传文件

javascript - Angular 从 MVC JsonResult 获取数据