2017-09-06 24 views
1

在angularjs中,我在元素中使用ng-show="isChecked('ID')"。並嘗試訪問其他控制器中生成的$ rootscope.array。我的功能,angularjs如何處理ng-if函數中的承諾

$scope.isChecked = function(ID) {  
    console.log($rootScope.IsCntrChecked);  
    var mycheck = $rootScope.IsCntrChecked.find(function(v) { 
     return v.CntrCode == ID; 
    }).CntrChk; 
    console.log(mycheck);  
    return mycheck; 
}; 

它工作正常,但在控制檯我得到錯誤信息「類型錯誤:無法讀取的未定義的屬性‘發現’」爲第幾個電話,當$ rootScope.IsCntrChecked是不確定的。我試着用函數中的承諾來處理,但那是一個錯誤。

[$rootScope:infdig] 10 $digest() iterations reached. Aborting!

請給我建議以簡單的方式處理這個錯誤。 感謝

+0

初始化'$ rootScope.IsCntrChecked'在運行函數的默認值 – madalinivascu

回答

3

只是檢查是否存在$rootScope.IsCntrChecked嘗試之前find東西在裏面:

if(!$rootScope.IsCntrChecked) 
    return false;