Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 角度和观察者中的单向或一次性绑定_Angularjs_Performance_Angular Ngmodel_Angularjs Ng Value - Fatal编程技术网

Angularjs 角度和观察者中的单向或一次性绑定

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',函数($

我有一个问题,当您在AngularJS中使用只读输入文本框时,如何避免观察者

我为它创建了plunker:

这表明,即使我对只读输入文本使用ng值,仍然为其添加了一个观察程序


我只是想在有只读控件的情况下避免观察者,我这样问是因为在我的企业应用程序中,即使对于只读页面,我也有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不会减少观察者数量。单向绑定和一次性绑定之间有很大区别。您希望视图只更新一次,还是希望一个始终显示模型值的只读元素?我想要一个只读元素,但这些控件值在用户不刷新页面之前不会更改。所以我可以说是一次性绑定。