$http请求
$http请求返回之后,给前台绑定数据赋值,会自动更新数据
ajax请求
$.ajax请求返回之后,给前台绑定数据赋值,不会自动更新数据,需要用$scope.$apply手动刷新
apply还是有问题,还是用$http最好
因为angular的规则是同一进程中只能有一个脏循环,手动apply就是开启了脏循环,如果这个时候还有其它的地方触发了脏循环就会报错
eg.比如一个页面多次请求,多次apply的时候
$http({ method: "POST", url: "...", data: parameters, }).success(function (data) { //vm.data的数据更新后,会自动更新页面显示 vm.data=data; }).error(function (errorData) { //console.log(error); }); //or $http({ method: "POST", url: "...", data: parameters, }).then(function (data) { //vm.data的数据更新后,会自动更新页面显示 vm.data=data; }).error(function (errorData) { //console.log(error); });
$.ajax({ type: "post", url: "...", data: parameters, success: function (data) { //使用$scope.$apply手动刷新数据 //apply机制,将数据模型的变化在整个应用范围($scope)内进行通知 $scope.$apply(function () { vm.data= data; }); }, error: function (error) { console.log(error); } });