angularjs - 我的 AngularJS Factory 可以有多种功能吗?

标签 angularjs angularjs-factory

我正在关注 Tutorial来自 AngularJS 官方文档,我想知道是否可以向 Phone 工厂添加另一个函数,以便我可以更好地组织代码。他们声明了一个“查询”函数,但是如果我想添加一个引用不同 url 的 query2 函数怎么办?例如,phones2/:phoneName.json?

工厂声明:

var phonecatServices = angular.module('phonecatServices', ['ngResource']);

phonecatServices.factory('Phone', ['$resource',
  function($resource){
    return $resource('phones/:phoneId.json', {}, {
      query: {method:'GET', params:{phoneId:'phones'}, isArray:true}
    });
  }]);

我尝试了很多方法,但似乎都不起作用:s

这个answer看起来是在正确的轨道上,但是每个工厂函数的语法与上面的工厂不太匹配。

大致如下:

phonecatServices.factory('Phone', ['$resource',
      function($resource){
       return {
        query: ...
        query2: ...
       }
      }]);

最佳答案

这样的一个例子是: Link for Demo

angular.module('services', []).factory('factoryName', ["$filter",
  function($filter) {
    var method1Logic = function(args) {
      //code
    };
    var method2Logic = function(args) {
     //code
    };
    return {
      method1: method1Logic,
      method2: method1Logic
    };
  }
]).controller('MainController', ["$scope", "$rootScope", "$filter", "factoryName", function ($scope, $rootScope, $filter,factoryName) {
     $scope.testMethod1 = function(arg){
       $scope.val1 = factoryName.method1(arg);
     };

     $scope.testMethod2 = function(arg){
       $scope.val2 = factoryName.method2(arg);
     };
}]);

还有一个更好的版本:References

function AnotherService () {

  var AnotherService = {};

  AnotherService.someValue = '';

  AnotherService.someMethod = function () {

  };

  return AnotherService;
}
angular
  .module('app')
  .factory('AnotherService', AnotherService);

关于angularjs - 我的 AngularJS Factory 可以有多种功能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21821150/

相关文章:

angularjs - 使用 AngularFire 时,光标会在键入时跳到字段末尾

javascript - 遍历两个数组的内容并一起显示

javascript - AngularJS http 获取错误的 json 文件

javascript - AngularJS : Services are not resolved in my controller

AngularJS : Factory Service Controller $http. 获取

javascript - AngularJS - 如何将范围变量传递给服务?

css - Angular Material 中列布局中元素的响应大小

AngularJS 与 JSP

angularjs - deferred.resolve 给出错误 TypeError : undefined is not a function

AngularJS注入(inject)第三方模块ngIdle