我的范围内的数据 URL 中有一张 400kb 的图片。我正在使用<img ng-src='{{dataUrl}}'/>
,它正在工作,但速度非常慢:我假设 Angular 正在每一帧检查这个 400kb 值。 angularjs batarang 证实我的总运行时间的 95% 都花在了 $watch {{dataUrl}}
上。 .
dataUrl 可以动态更改,但肯定不是每一帧 - 仅当用户选择新图像时。
如何在不使用变得如此昂贵的完整双向绑定(bind)功能的情况下,将新的 dataUrl 注入(inject)到 DOM 中?
最佳答案
$watch 函数为此返回一个回调。您只需执行回去即可破坏观察者。
var watcher = $scope.$watch('data', function(newValue, oldValue) {
if (newValue) {//you could do a isset here
watcher();
}
});
<小时/>
重新观看。可能会很昂贵,具体取决于当前 $scope 上的项目数量
if(!$scope.$$phase) {
$scope.$digest()
}
关于javascript - 以 Angular 绑定(bind)一次...然后在每个事件上再次绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21385302/