簡體   English   中英

在AngularJS中,如何獲得一個工廠函數來引用另一個工廠函數?

[英]In AngularJS, how do I get one factory function to refer to another?

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

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

  return {

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

    func2: function() {
      func1();
    }

  }

});

我怎樣才能做到這一點?

最安全的方法是使用顯示模塊模式:

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

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

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

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

我通常將其分配給與工廠相同的變量名稱,以方便閱讀並在嵌套函數(如以下示例所示)重用時很有用。

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;
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM