2014-09-04 49 views
0

查看代碼正確的方式angularjs視圖

<a ng-click="deleteOrdersUpdate()">Update</a> 
<span class="red">{{noOfOrders}}</span> 

控制器代碼

$scope.deleteOrdersUpdate=function() { 
$scope.noOfOrders=$scope.selection.length; 
scope.$apply(); 
}; 

我不斷收到$ rootScope更新範圍值:inprog行動已在進行中的錯誤。

這樣做的正確方法是什麼?任何人都可以請我指出正確的方向。

+0

我會加一點解釋@RonnieTroj的回答:'ngClick'指令將事件回調包裝在'$ scope.apply'中,這就是爲什麼它在控制器中不需要的原因。 – package 2014-09-04 06:17:12

回答

0

你必須檢查它是否已經在任何消化週期,如果是那麼它會自動完成,你不需要做這個,如果沒有,那麼你可以申請範圍

if(!$scope.$$phase) { 
    $scope.$apply(); 
} 
3

因爲您已經在角度上下文中操作,所以沒有理由在此調用$apply

$scope.deleteOrdersUpdate = function() { 
    $scope.noOfOrders = $scope.selection.length; 
};