Angular工厂及其功能相互呼唤

时间:2014-06-19 17:12:20

标签: angularjs factory

我如何参考工厂内的功能?以下是示例,我希望function2在返回结果时使用function1(原来会失败):

angular.module('myapp').
  factory('ExampleFactory', function ($http, $rootScope) {
  return {
    function1: function (a,b) {
      return a + b;
    },
    function2: function (a,b,c) {
      return this.function1(a,b) * c
    },    
  }
})

2 个答案:

答案 0 :(得分:0)

这是使用"显示模块"的一个选项。设计模式:

angular.module('myapp').
  factory('ExampleFactory', function ($http, $rootScope) {
  function function1 (a,b) {
      return a + b;
  }
  function function2 (a,b,c) {
      return function1(a,b) * c;
  }
  return {
      function1: function1,
      function2: function2,    
  }
});

答案 1 :(得分:0)

    angular.module('myapp').
      factory('ExampleFactory', function ($http, $rootScope) {
        // define what ever function you want , outside of the return property
        function plus(a,b){
          return a + b;
        }

      return {
        function2: function (a,b,c) {
          // Now u can use that function here :
          return plus(a,b) * c
        }
      }
    })