AngularJS $http和$.ajax
$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);
}
});
学习技术最好的文档就是【官方文档】,没有之一。
还有学习资料【Microsoft Learn】、【CSharp Learn】、【My Note】。
如果,你认为阅读这篇博客让你有些收获,不妨点击一下右下角的【推荐】按钮。
如果,你希望更容易地发现我的新博客,不妨点击一下【关注】。