是否可以暂时禁用AngularJS中的数据绑定。我有一个列表items
,我使用ng-repeat
进行渲染。我想在items
上执行一些列表操作,而暂时禁用数据绑定,以便中间更改不会反映在页面上,从而减慢它的速度。相反,我想在列表上执行操作,然后重新启用数据绑定。
答案 0 :(得分:3)
var items = angular.copy($scope.items);
..
..
..
/* perform operations over items */
..
..
..
$scope.items = angular.copy(items);
答案 1 :(得分:0)
对于单个变量临时取消绑定可以通过保留原始值的单独副本并在变量发生变化时重置变量并且如果它不是只读的那样,然后在副本变为只读时重置该副本来完成。
JS
<div ng-app>
<div ng-controller="ViewCtrl">
<input type="checkbox" ng-model="modelValue.pointer" ng-readonly="modelReadonly" /><span ng-show="modelReadonly.pointer"> <- is read-only</span><br/>
<span ng-show="modelValue.pointer">checkbox IS CHECKED</span>
<span ng-show="!modelValue.pointer">checkbox IS NOT CHECKED</span>
<div>
<input type="checkbox" ng-model="modelReadonly.pointer" /> readonly?
</div>
</div>
</div>
HTML
{{1}}