2015-04-27 33 views
3

我有一個具有多個函數的AngularJS工廠。用AngularJS工廠在另一個函數中調用一個函數

我想調用的其他函數中的一個功能,如下圖所示:

.factory("AppStart", function($cordovaSQLite) { 
    return { 
    init: function() { 
     var res = "hello"; 
     console.log("in load start up page"); 
    }, 
    create_table: function() { 
     AppStart.init(); 
    } 
    } 
}); 

,但我得到了以下錯誤:

AppStart is not defined.

那麼,如何調用init()功能create_table()函數?我試過只叫init(),但它也不起作用。

+0

從CREATE_TABLE內部取出AppStart.init()功能,在你的控制器中注入AppStart,並從那裏調用AppStart.init – alou

+0

以及我沒有控制器 –

回答

3

要做到這一點,我建議你定義與功能名稱,然後與引用它們的屬性創建一個服務對象,爲我做了如下:

.factory("AppStart", function($cordovaSQLite) { 
    function init() { 
     var res = "hello"; 
     console.log("in load start up page"); 
    } 

    function create_table() { 
     init(); 
    } 

    return { 
     init: init, 
     create_table: create_table 
    }; 
}); 
+0

完美的訣竅。謝謝! –