AngularJs $scope.$apply不按预期工作
发布时间:2020-12-17 10:22:35 所属栏目:安全 来源:网络整理
导读:我正在使用这个控件: http://blueimp.github.io/jQuery-File-Upload/angularjs.html以角度进行文件上传,一旦文件上传到我的服务器,我返回一个网址,并希望在成功回调中将其显示给客户端.正在使用的插件只是一个普通的jquery文件上传,但我提供了一个角度指令
我正在使用这个控件:
http://blueimp.github.io/jQuery-File-Upload/angularjs.html以角度进行文件上传,一旦文件上传到我的服务器,我返回一个网址,并希望在成功回调中将其显示给客户端.正在使用的插件只是一个普通的jquery文件上传,但我提供了一个角度指令包装器.
这是我如何定义回调: $scope.options = { url: '/api/Client/',type: 'PUT',done: function (event,data) { var scope = angular.element(this).scope(); scope.test = "doesn't work"; scope.$apply(function () { scope.test = "this doesn't work either"; }); } }; 文件上传很好,并且调用了done函数但是我无法更新视图.我最初尝试只是改变范围,然后我意识到我需要$apply()函数,但这也不起作用. 我也试过了 $scope.options = { url: '/api/Client/',data) { $scope.test = "doesn't work"; $scope.$apply(function () { $scope.test = "this doesn't work either"; }); } }; 这也行不通.我不确定为什么它没有更新我的视图,因为完成调用只是一个ajax成功事件,我没有看到这个特定的插件如何导致$scope的任何问题.$apply.我正在使用AngularJs 1.1.5,但我也尝试过1.0.7并且遇到了同样的问题.
从我的评论中复制,以便更清楚地解决问题所在:
我设法弄清楚了问题.当使用他们的例子时,我有一个ng-controller的副本(他们的例子嵌套在我的另一个控制器中),即使两个都使用相同的控制器,它似乎只会更新嵌套控制器范围内的任何内容.删除重复的ng-controller属性时,一切正常. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |