使用jQuery的$。阿贾克斯的angularJS控制器内(Using jQuery's $

2019-07-19 08:29发布

我如何使用angularJS控制器内部jQuery的$。阿贾克斯()函数(而不是内置的$ HTTP angularJS),以便$范围值可以从一个视图/模板后进行访问?

我有这个有点简约angularJS控制器:

function UserCtrl($scope, $http) {
    $.ajax('http://localhost:8080/admin/user/johndoe').success(function(data) {
        $scope.user = data;
    });
}

并在视图类似:

<h1>Hello, {{ user.Username }}</h1>

然而, <h1>视图将负载空,altough一个console.log()的负责人告诉我,$ scope.user填充就像我想要的。

现在,如果我更换$.ajax()与调用$http.get()如预期,一切工作正常。

我知道的$http是内置angularJS,但因为我不是从头开始,但已经有大量的代码,在整个使用jQuery的,我想坚持的jQuery的$。阿贾克斯()。

有任何想法吗?

Answer 1:

由于使用jQuery AJAX是出棱角分明的世界,你需要包装内的$范围分配

$scope.$apply(function(){
    $scope.user = data;
});

角的$ HTTP自带预建与消化周期触发机制。



文章来源: Using jQuery's $.ajax within an angularJS controller