Utilisation de $ .ajax de jQuery dans un contrôleur angularJS

Comment utiliser la fonction $ .ajax () de jQuery dans un contrôleur angularJS (au lieu de $ http intégré) afin que les valeurs de $ scope soient accessibles ultérieurement à partir d’un affichage / modèle?

J’ai ce contrôleur angularJS un peu minimaliste:

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

Et dans la vue, quelque chose comme:

 

Hello, {{ user.Username }}

Cependant, le

dans la vue sera vide lors du chargement, même si un console.log() dans le contrôleur me dit que $ scope.user est rempli exactement comme je le souhaite.

Maintenant, si je remplace l’ $.ajax() par $http.get() tout se passe comme prévu.

Je connais $http qui est intégré à angularJS, mais comme je ne pars pas à zéro mais que j’ai déjà beaucoup de code qui utilise jQuery, je veux m’en tenir à jQuery pour $ .ajax ().

Des idées?

JQuery ajax étant hors du monde angular, vous devez envelopper votre affectation $ scope dans

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

$ Http angular est livré pré-construit avec le mécanisme de déclenchement du cycle de digestion.