$apply()方法

Angular中的双向绑定特性非常方便。在js中设置scope模型,如果scope发生改变,则在html视图中相应的值也会发生变化。同样,如果视图中的值发生变化,scope值也会接受反馈发生变化。
这种双向绑定的特性是由Angular内部设置的观察者(同$watch一样),定期向模型进行监听,通常是不需要我们进行额外操作的。
但是如果在Angular上下文之外的地方进行了修改,比如说,在一个按钮点击事件function()上修改了scope的值,这样AngularJS就没法观察到我们修改了什么,这样必须手动调用$apply()方法(其实在Angular内部设置的观察者时它也会主动调用$apply(),但作用范围只适用于AngularJS的上下文,固需要我们手动调用)。

示例

//按钮绑定事件 
$scope.btnClick =  function btnClick() {
       //修改scope的值
       $scope.status = !$scope.status;
       $scope.apply();
}

或者

//按钮绑定事件 
$scope.btnClick =  function btnClick() {
       $scope.apply(function(){
       //修改scope的值
       $scope.status = !$scope.status;
     });
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容