la liaison de données à partir de $http.get() demande en ng-repeat
J'obtiens bien ma de données JSON à partir d'un serveur, mais le problème survient lorsque vous essayez à la liste sur ma page à l'aide de la ng-repeat directive.
Voici mon code HTML contenu du corps, où de "mydata' (tableau JSON) est affichée correctement dès que la $http.get() méthode reçoit les données demandées, mais la ng-repeat n'est pas la liste des éléments d'un tableau:
<body ng-app="myapp">
<div ng-controller="MyController" >
Data from server: {{ mydata }}
</div>
<hr>
<ul ng-controller="MyController as controller">
<li ng-repeat="data in controller.mydata">
{{ data }}
</li>
</ul>
</body>
Et voici le code Javascript:
var URI = 'http://my_service_uri/';
angular.module("myapp", [])
.controller("MyController", function($scope, $http) {
$scope.mydata = [];
$http.get(URI)
.then(function(result) {
$scope.mydata = result.data;
});
});
OriginalL'auteur charliebrownie | 2014-11-02
Vous devez vous connecter pour publier un commentaire.
Vous avez mélangé le contrôleur de la syntaxe et l'utilisation de la portée. Voir mon plunker à http://plnkr.co/qpcKJZx4jovC6YdzBd6J et vous verrez un exemple.
Le principal changement est lorsque vous utilisez le contrôleur de syntaxe vous devez lier vos variables.
Choisir une méthode de publication des données d'affichage et de rester avec elle, soit en tant que contrôleur de dollars ou de portée.
Vous remarquerez le haut "les Données du serveur" n'est plus de travail dans le plunker, parce que je n'ai pas changé d'utiliser le contrôleur de la syntaxe.
J'ai utilisé cette approche, sans succès jusqu'à ce que j'ai finalement utilisé
$scope.$apply();
après laquelle le ng-repeat a été remplies.OriginalL'auteur rtucker88