angular,$scope属性改变,但DOM不刷新

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

clipboard.png,然后点右上角的叉

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

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

clipboard.png

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

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

阅读 6.7k
1 个回答

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

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

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

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

希望有帮助~ :)

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题