javascript - 以 Angular 绑定(bind)一次...然后在每个事件上再次绑定(bind)

标签 javascript angularjs

我的范围内的数据 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/

相关文章:

javascript - 根据 routeProvider 更改值

javascript - 如何使用 angularjs 和 PHP 将数组输入值存入数据库

javascript - ng-view 故意淡入,但随后淡出

javascript - 如何在 Jasmine 单元测试中的 TypeScript 中获取 'Module' 的定义?

javascript - MeteorJS 中的图像文件上传

javascript - 比较两个数组并相应地更改属性

javascript - Mongoose 模式创建空数组字段

php - 将 Javascript 变量传递给 PHP 不起作用

javascript - AngularJS - 从表单验证/脏中排除字段

angularjs - 指令链接函数的transclude函数中, "futureParentElement"是怎么用的?