在我的控制器中,我調用一個需要遞歸調用自身的工廠函數。代碼工作時,他們只是簡單的JavaScript函數沒有在工廠內定義,但我試圖隔離他們好一點。Angular在同一工廠調用工廠函數
這是一個代碼片段看起來像控制器:
myApp.controller('VisionCtrl', ['$scope', 'AppFactory', function ($scope, AppFactory,) {
var promiseTaxo;
promiseTaxo = AppFactory.getTaxonomy("vision3", "Vision Type");
}])
,工廠模塊:
myApp.factory('AppFactory', ['$http', '$q', function($http, $q, TaxoFactory) {
return {
getTaxonomy: function(group, termSet) {
... lots of code ....
if (termSet.length > 0) { getTaxonomy(group, childTermSet) }
}
}
}])
這是超級簡單,但這個想法是,在getTaxonomy函數,如果我找到了子節點,我遞歸地調用我自己。在處理處理和承諾的異步性質的地方,還有很多事情要做,但是當我將這些代碼放在工廠之外時,它就可以正常工作。
我只是不知道如何在getTaxonomy中調用getTaxonomy!
'getTaxonomy'沒有定義,嘗試'this.getTaxonomy'。或者先定義對象,然後在末尾使用'obj.getTaxonomy'和'return obj'。或者給你的函數一個名字用於遞歸。 – elclanrs