jQuery Post,然后访问AngularJS $ scope

时间:2018-06-13 21:35:06

标签: jquery angularjs jquery-ajaxq

在我们的AngularJS应用程序中,我们需要使用jQuery将AJAX POST数据作为后端。我们不能使用$ http,因为它不会以我们后端需要的方式格式化对象。 jQuery呢。

我试图在jQuery POST完成后设置$ scope变量,但无法访问$ scope。

 $scope.submit = function () {
        $scope.isSubmitting = true;
        $.post("DoStuff",{ createmodel: $scope.model })
            .then(function(result) {
                ///THIS FAILS TO DO ANYTHING
                $scope.isSubmitting = false;
            });

    };

如何在jQuery POST返回后访问$ scope。

2 个答案:

答案 0 :(得分:2)

它无法执行任何操作,因为jQuery不会通知Angular范围变量已更改。您可以通过添加$scope.$apply()

来实现此目的

在您的情况下,解决方案是

$scope.isSubmitting = false;
$scope.$apply();

答案 1 :(得分:1)

我会把它放在$ scope中。$ apply

$scope.apply(function(){
   $scope.isSubmitting = false;
})

https://docs.angularjs.org/api/ng/type/$rootScope.Scope#$apply