2014-09-04 47 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; 
};