$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);
        }
    });

相关文章:

  • 2021-11-20
  • 2022-03-03
  • 2021-07-16
  • 2021-09-06
  • 2019-01-24
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-11-22
  • 2022-01-14
  • 2022-12-23
  • 2022-12-23
  • 2021-09-18
  • 2021-06-05
相关资源
相似解决方案