javascript - angular,$scope属性改变,但DOM不刷新
PHP中文网
PHP中文网 2017-04-10 17:15:20
[JavaScript讨论组]

应该很多人都遇到过,就是改变了$scope.xxx之后,DOM上的ng-bind不跟着变。
但是我发现一个情况就是,当属性改变了之后,DOM不动的时候,内容不变,但是DOM一旦动了,比如说淡出,里边的数据就会变成新的

,然后点右上角的叉

它开始谈出时,里边的数据就会变成想要的

之前看见有人教用apply来做,好使了,但是加了它之后,如果再度打开局部应用的时候,就会报错,像这样

在网上查,好像是什么controller已经被执行过了的报错,我也不懂……而且发现它三个都是差不多的……

请问肿么破????????

PHP中文网
PHP中文网

认证0级讲师

全部回复(1)
迷茫

遇到过同样的问题,可能的原因是使用了 jQuery,不知你是否用了,如果是的话可通过以下方法解决:

你遇到的问题就是淡入淡出的框出来以后,页面没有马上显示 $scope.xxx 的更新内容,此时可以通过 jQuery 方法赋值,如:

$scope.$apply(function(){
    // 把你要更新的内容放在这里,并使用 jQuery 方法更新内容
    $('selector').html('<p>...</p>')
});

AngularJS 会记住当前值并比较上一次的值,这被称为 dirty-checking。如果值发生了变化,就会触发变化事件。$apply() 方法就是用于从一个「非Angular」环境中对 Angular 对象赋值时使用的方法。

希望有帮助~ :)

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号