die Bindung von Daten aus $http.get () - Anforderung in ng-repeat
Bin ich immer fein meine JSON-Daten von einem server, aber das problem kommt, wenn Sie versuchen, die Liste auf meiner Seite mit dem ng-repeat Richtlinie.
Hier ist mein HTML Inhalt für den body, wo 'mydata' (JSON-array) wird korrekt angezeigt, sobald die $http.get() Methode erhält die angeforderten Daten, aber die ng-repeat ist nicht die Auflistung der array-Elemente:
<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>
Und hier ist der Javascript-code:
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;
});
});
InformationsquelleAutor charliebrownie | 2014-11-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du tauscht die controller-as-syntax und mit Umfang. Siehe meine plunker bei http://plnkr.co/qpcKJZx4jovC6YdzBd6J und Sie werden sehen, ein Beispiel.
Die wichtigste änderung ist bei der Verwendung von controller-as-syntax müssen Sie die bind-Variablen.
Wählen Sie eine Methode, die Veröffentlichung Ihrer Daten anzeigen und stick mit es, entweder controller oder $scope.
Sie werden feststellen, das top "Daten-server" ist nicht mehr die Arbeit in der plunker, da ich es nicht ändern, dass man mit dem controller as syntax.
Ich habe dieses Vorgehen ohne Erfolg, bis ich schließlich
$scope.$apply();
nach dem der ng-repeat erfüllt wurde.InformationsquelleAutor rtucker88