如果在视图中更改了ng模型,则$ scope将相应更新,但如果视图中有{{x()}},并且js中有$ scope.x = function(){}部分是,当视图中发生任何事件或事件时,x()将被触发吗?
我不太清楚AngularJs的事件和功能的原理。
答案 0 :(得分:1)
大多数时候,Angular会正确处理$ scope.x = function(){}并自动更新视图。
这是因为执行代码时应用程序执行时间只有一些时刻,例如页面加载,AJAX回调等.Angular知道这些时刻并进行脏检查(比较前后的范围值)。
但是,Angular可能有时不知道您更新范围属性,例如当您与某些第三方插件集成时。在这种情况下,您需要包装代码,这会在$ scope中更改范围属性。$ apply method:
$scope.$apply(function(){
$scope.x = function(){};
});