Ich versuche, die Daten in den Code zu meiner Anwendung zu bringen, hier ist die Fabrik.
angular.module('starter.services', [])
.factory('Locations', function ($http, $q) {
// Might use a resource here that returns a JSON array
var url = "https://portal.mobilequbes.com/api/kiosks?callback=JSON_CALLBACK";
var locations = function() {
$http.jsonp(url)
.then(function (result) {
return result.data;
});
};
return {
all: function() {
return locations;
},
get: function (locId) {
for (i = 0; i < locations.length;i++){
if (locations[i].friendlyName == parseInt(locId)) {
return locations[i];
}
}
}
}
});
und mein Controller:
.controller('MapCtrl', function ($scope, $http, Locations) {
$scope.locations = Locations.all();
$scope.createMarks = function() {
createList(Locations.all());
}
})
Wenn es lädt, lädt es einfach nichts oder zwei Objekte, die wie folgt aussehen: ‚‘
Ich bin nicht sicher, warum, weil ich kann nicht scheinen zu erkennen irgendwelche Probleme und ich fühle mich, als hätte ich das zu Tode gelesen. Ich habe die Return-Funktion mit jsFiddle getestet und es hat gut funktioniert, so dass es etwas mit ionic/cordova zu tun hat, bin ich mir ziemlich sicher.
Ihre 'locations'-Funktion wird immer undefiniert zurückgegeben -' return result.data; 'gibt die' .then' Callback-Funktion zurück, nicht 'locations' selbst. –
Wie repariere ich das? – Peter
Tut mir wirklich leid, ich habe keine Zeit, eine vollständige Antwort zu schreiben. Die Antworten auf diese ähnliche Frage sollten Sie jedoch in die richtige Richtung weisen: http://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous-call - der Abschnitt über Versprechen, insbesondere, da dies die API ist, die '$ http' verwendet. –