Angular Service mit http get call funktioniert nicht mit ng-repeat
Ich habe einen Winkelregler, der einen Dienst anruft. Der Dienst ist für die Rückgabe von Daten aus einer JSON-Datei verantwortlich.
Regler:
function projectController($scope, ajaxServices) {
$scope.projects = ajaxServices.getProjects();
}
Bedienung:
projectManagerApp.factory('ajaxServices', function ($http) {
return {
getProjects : function () {
$http.get('projects.json', { data: {} }).success(function (data) {
if (window.console && console.log) {
console.log("objects returned: " + data.length); // shows # of items
}
return data //nothing ng-repeated, no console errors.
})
// Exact same data from json file hard-coded, works fine
// when not commented out.
// return [{ "id": 1, "name": "Project 1 }, { "id": 2, "name": "Project 2" }]
}
}
});
html:ng-repeat="project in projects"
In der Erfolgsfunktion werden die zurückgegebenen Daten im Konsolenprotokoll angezeigt. Wenn ich jedoch versuche, die Daten zurückzugeben, ist das Element ng-repeat ul auf meiner Seite leer. Im selben Dienst, wenn ich einfach die gleichen Daten, die auf der Konsole aufgezeichnet sind, hartcodiert zurückschicke (außerhalb der Erfolgsfunktion funktioniert es natürlich einwandfrei.
Wie kann ich die Daten mit meinem Ajax-Aufruf in das ng-repeat zurückgeben?
Ich bin für Plunker genauso neu wie für Angular, aber hier ist mein Versuch, einen Plunk zu spielen:http://plnkr.co/edit/ALa9q6