代码之家  ›  专栏  ›  技术社区  ›  Ian Vink

jquery post,然后访问angularjs$scope

  •  0
  • Ian Vink  · 技术社区  · 6 年前

    在我们的angularjs应用程序中,我们需要使用jquery将数据发送到后端。我们不能使用$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 回复  |  直到 6 年前
        1
  •  2
  •   Ashik Basheer    6 年前

    它无法执行任何操作,因为jquery没有通知angular范围变量已更改。您只需添加 $scope.$apply()

    在你的情况下,解决方法是

    $scope.isSubmitting = false;
    $scope.$apply();
    
        2
  •  1
  •   Phil Ninan    6 年前

    我会把这个放在$范围内。$申请

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

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