在Angular js工厂中的另一个方法内调用方法

时间:2016-04-08 08:50:18

标签: javascript angularjs

我有像这样的angularjs工厂

.factory('sampleFactory',function(){
    var self = this;
    return {
        method1: function(arg) {
            console.log(arg);
        },
        method2: function() {
            self.method1('hello');
        }
    }
})

当我运行此代码时,我收到一条错误,指出self.method1不是函数。

如何通过调用另一个方法中的方法来使这个工厂工作?

2 个答案:

答案 0 :(得分:0)

试试这个:

.factory('sampleFactory',function(){
    var sampleFactory = {};

    sampleFactory.method1 = function(arg){
        console.log(arg);
    }

    sampleFactory.method2 = function(arg){
         sampleFactory.method1('hello');
    }  

    return sampleFactory;

})

答案 1 :(得分:0)

在我看来factory recipe并不是您需要的,遵循service食谱可能需要的角度建议:当您的服务是a时,您应该使用service 类类服务,因为服务是使用new运算符实例化的。因此,更好的方法是以这种方式声明您的服务:



angular
  .module('test', [])
  .service('sampleFactory', function sampleFactory() {
    
    this.someProperty = 'Hello World';
    this.getSomeProperty = function() { return this.someProperty; };
  
  })
;