在我们的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。
答案 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