varappElement=document.querySelector('[ng-controller=seatsCtrl]');var$scope=angular.element(appElement).scope(); $scope.$apply(function(){ $scope.data=[ {id:1,cnt:4},{id:3,cnt:5},{id:2,cnt:6} ]; });
取到scope,然后调用$apply
或者在controller里写一个function
$scope.update=function(data){ $scope.data=data; $scope.$apply(); }
外部调用这个function
varele=document.querySelector("[ng-controller=seatsCtrl]"); angular.element(ele).scope().update([ {id:1,cnt:7},cnt:8},cnt:9} ]);
注意function内部,需要调用$apply()
如果不调用apply,虽然scope的数据变化了,但并不会更新到页面上去显示
从非angularjs的js代码中去改变angularjs的controller的数据,或许,这并不是标准的angularjs的用法,但可能会遇到需要这样做的时候。
原文链接:https://www.f2er.com/angularjs/148889.html