2016-07-08 91 views
1

我使用ng-click打開一個模態和調用FUNC工作我第一次點擊它。角度NG-點擊從第二點擊

這是professionInfo() FUNC:從服務器

$scope.professionsInfo = function() { 
    $http({ 
     url: '/SafetyManager/professions', 
     method: "GET", 
    }).success(function (response) { 
     $scope.professions = response; 
     for(var i = 0, len1=$scope.info.professions.length; i<len1; i++) { 
      for(var n=0, len2=$scope.professions.length; n<len2; n++) { 
       if($scope.info.professions[i].id == $scope.professions[n].id) 
        $scope.professions[n].disabled = true; 
      } 
     }  
    }); 
}; 

的FUNC返回正確的數據,並更新它$scope.professions(我知道,因爲在下拉列表中顯示的數據) 但for循環失敗從瀏覽器的錯誤:

"TypeError: Cannot read property 'professions' of undefined"

然後,如果我關閉模式,再次點擊它工作正常,沒有錯誤。 但是,當我刷新時,錯誤在第一次點擊返回並從第二次消失。

任何想法如何解決它?

+0

通過刪除data-target =「#editWorkerModal」 –

+0

來檢查一次:$ scope.info.professions –

+0

區別:$ scope.professions&$ scope.info.professions?點擊$ scope.professions獲取響應。另一個裝載在哪裏? –

回答

2

不要在ng-click上調用兩個函數。請在您的ng-click功能中包含其他功能。

例如你的HTML:

<a ng-click="workerInfo(worker.id);"> 
    <i class="glyphicon glyphicon-edit white"></i> 
</a> 

控制器:

$scope.workerInfo = function(workerID) { 
    // Do something 
    $scope.professionsInfo(); 
}; 

$scope.professionsInfo = function() { 
    // Do something else 
} 

編輯:

,並致電模式打開你從$scope.professionsInfo HTTP響應成功之後。

或者甚至更好地結合這兩者並調用一個函數,它首先執行http請求,然後打開模式窗口並執行所需的其他內容。

+0

謝謝!!當我將professionsInfo添加到workerInfo問題解決:) –

0

我有同樣的問題,並通過調用方法,一旦它的工作。

在我的頁面中,我創建了一個工廠,並保留了所有的ajax調用。現在一切都寫在控制器部分,那麼工廠和服務的用途是什麼。