jQuery Post ,然后访问 AngularJS $scope
jQuery Post , then Access AngularJS $scope
在我们的 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;
});
};
jQueryPOST返回后如何访问$scope
它没有做任何事情,因为 jQuery 没有通知 Angular 作用域变量已经改变。您可以简单地通过添加 $scope.$apply()
来实现
对于你的情况,解决方案是
$scope.isSubmitting = false;
$scope.$apply();
我会把它放在 $scope.$apply
$scope.apply(function(){
$scope.isSubmitting = false;
})
https://docs.angularjs.org/api/ng/type/$rootScope.Scope#$apply
在我们的 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;
});
};
jQueryPOST返回后如何访问$scope
它没有做任何事情,因为 jQuery 没有通知 Angular 作用域变量已经改变。您可以简单地通过添加 $scope.$apply()
对于你的情况,解决方案是
$scope.isSubmitting = false;
$scope.$apply();
我会把它放在 $scope.$apply
$scope.apply(function(){
$scope.isSubmitting = false;
})
https://docs.angularjs.org/api/ng/type/$rootScope.Scope#$apply