这两天开发项目的时候遇到了一个问题,就是在controler里面代码命名执行了,但是页面并没有做任何的改变,大概就是用{{}}做双向数据绑定,$scope做相应的改变操作,首先你要确保没有其他的报错,作用域$scope没问题,然后你就可以考虑$apply()。重点说明:这个时候你肯定用的不是ng自己的东西,比如你用的是jq的或者是其他的第三方库
$apply()函数可以从Angular框架的外部让表达式在Angular上下文内部执行。例如,假设你实现了一个setTimeout()或者使用第三方库并且想让事件运行在Angular上下文内部时,就必须使用$apply()。
简而言之,使用$scope.$apply()时可以从外部进入上下文。如果在事件被触发时调用$apply(),就会使用Angular事件循环来运行它。如果没有调用$apply(),就不会在事件循环内执行这个函数,而它会运行在Angular上下文外部
上面这两段我是抄的,简洁明了,在使用ng-指令的时候会默认调用$apply(),调用它会强制一次$digest(脏检查)循环
试试这个吧
$scope.$apply(function(){
$scope.est = "Just A Test!"
})
最好用上面的这种里面嵌套函数的方式使用
另外附上几个相关文章的链接
ng性能调优的7个建议,ng-reapt双向绑定超过2500个会变慢
http://www.csdn.net/article/2013-09-18/2816972-AngularJS-performance-tuning-for-long-list