Angularjs 角度和观察者中的单向或一次性绑定
我有一个问题,当您在AngularJS中使用只读输入文本框时,如何避免观察者 我为它创建了plunker: 这表明,即使我对只读输入文本使用ng值,仍然为其添加了一个观察程序Angularjs 角度和观察者中的单向或一次性绑定,angularjs,performance,angular-ngmodel,angularjs-ng-value,Angularjs,Performance,Angular Ngmodel,Angularjs Ng Value,我有一个问题,当您在AngularJS中使用只读输入文本框时,如何避免观察者 我为它创建了plunker: 这表明,即使我对只读输入文本使用ng值,仍然为其添加了一个观察程序 我只是想在有只读控件的情况下避免观察者,我这样问是因为在我的企业应用程序中,即使对于只读页面,我也有200多个只读控件,观察者数量大约为1100,这会减慢我的角度应用程序的速度。找到了一种使用单向绑定的方法: var-app=angular.module('app',[]); 应用程序控制器('MainCtrl',函数($
我只是想在有只读控件的情况下避免观察者,我这样问是因为在我的企业应用程序中,即使对于只读页面,我也有200多个只读控件,观察者数量大约为1100,这会减慢我的角度应用程序的速度。找到了一种使用单向绑定的方法:
var-app=angular.module('app',[]);
应用程序控制器('MainCtrl',函数($scope){
//$scope.watcherCount=0;
$scope.countWatchers=函数(){
var root=angular.element(document.injector().get(“$rootScope”);
var count=root.$$watchers?root.$$watchers.length:0;//包括当前范围
var pendingChildHeads=[root.$$childHead];
无功电流范围;
while(pendingChildHeads.长度){
currentScope=pendingChildHeads.shift();
while(当前范围){
count+=currentScope.$$watchers?currentScope.$$watchers.length:0;
pendingChildHeads.push(当前范围$$childHead);
currentScope=currentScope.$$nextSibling;
}
}
$scope.watcherCount=计数;
//警报(“有“+计数+观察者”);
返回计数;
}
});代码>
安古拉斯普朗克
文件。写(“”);
找观察者
观察者计数
{{watcherCount}}
也许可以尝试以下方法:只需执行ng readonly=true
即可查看是否为该值添加了一个观察者。谢谢,但运气不好,使ng readonly=true不会减少观察者数量。单向绑定和一次性绑定之间有很大区别。您希望视图只更新一次,还是希望一个始终显示模型值的只读元素?我想要一个只读元素,但这些控件值在用户不刷新页面之前不会更改。所以我可以说是一次性绑定。