在angularJS控制器中使用jQuery的$ .ajax

如何在angularJS控制器(而不是angularJS内置$ http)中使用jQuery的$ .ajax()函数,以便以后可以从视图/模板访问$ scope值?

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

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

在视图中,例如:

 

Hello, {{ user.Username }}

但是,视图中的

在加载时将为空,尽管控制器中的console.log()告诉我$ scope.user是按我的意愿填充的。

现在,如果我用$http.get()替换$.ajax()调用,一切正常。

我知道$http是内置的angularJS,但由于我不是从头开始但已经有很多代码使用jQuery,我想坚持使用jQuery for $ .ajax()。

有任何想法吗?

因为使用jQuery ajax是在angular的世界之外,你需要将$ scope赋值包装在其中

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

Angular的$ http预先构建了摘要周期触发机制。