在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预先构建了摘要周期触发机制。