Angular Js如何处理与控制器触发的视图和事件的数据绑定?

时间:2014-01-30 03:36:25

标签: angularjs

如果在视图中更改了ng模型,则$ scope将相应更新,但如果视图中有{{x()}},并且js中有$ scope.x = function(){}部分是,当视图中发生任何事件或事件时,x()将被触发吗?

我不太清楚AngularJs的事件和功能的原理。

1 个答案:

答案 0 :(得分:1)

大多数时候,Angular会正确处理$ scope.x = function(){}并自动更新视图。

这是因为执行代码时应用程序执行时间只有一些时刻,例如页面加载,AJAX回调等.Angular知道这些时刻并进行脏检查(比较前后的范围值)。

但是,Angular可能有时不知道您更新范围属性,例如当您与某些第三方插件集成时。在这种情况下,您需要包装代码,这会在$ scope中更改范围属性。$ apply method:

$scope.$apply(function(){
    $scope.x = function(){};
});