在AngularJS中,如何让一个工厂函数引用另一个?

时间:2014-07-21 21:38:51

标签: javascript angularjs

例如,在下面的代码中,我希望func2调用func1。

App.factory("MyLib", function() {

  return {

    func1: function() {
      console.log("func1");
    },

    func2: function() {
      func1();
    }

  }

});

我该怎么做?

2 个答案:

答案 0 :(得分:2)

最安全的方法是使用揭示模块模式:

App.factory("MyLib", function() {

    var func1 = function() {
        console.log("func1");
    };

    var func2 = function() {
        func1();
    };

    return {
        func1: func1,
        func2: func2
    };
});

答案 1 :(得分:0)

我通常将它分配给与工厂相同的变量名称,以便于阅读,并且当您在下面的示例中显示嵌套函数时,可以重复使用它。

App.factory("MyLib", function() {
    var MyLib = {
        func1: function() {
            console.log("func1");
        },
        func2: function() {
            MyLib.func1();
            angular.forEach(["1","2"], function(value, key) {
                //easier to read and understand
                MyLib.func1();
            },[]);
        }
    }
    return MyLib;
});