Ich verwende einen Dienst, um Daten zwischen verschiedenen Instanzen eines AngularJS-Controllers zu übertragen. Ich weiß, dass dies nicht der beste Weg ist, aber es passt zu meinem Fall. Das Problem ist, dass ich keine Daten aus diesem Service abrufen kann.In angularjs können keine Daten außer Betrieb gesetzt werden.
var app = angular.module('MovieApp', ['ngResource']);
app.factory('factMovies', function($resource) { //this returns some movies from MongoDB
return $resource('/movies');
});
app.service('SnapshotService', function(factMovies) {
//this is used to pass data to different instances of the same controller
//omitted getters/setters
this.snapshots = [];
this.init = function() {
var ctrl = this;
var resp = factMovies.query({}, function() {
if (resp.error) {
console.log(resp.error)
} else {
tempDataset = []
//do stuff and put the results in tempDataset
ctrl.snapshots.push(tempDataset);
console.log(tempDataset); //prints fine
return tempDataset;
}
});
};
});
app.controller('TileController', function(SnapshotService) {
this.dataset = [];
this.filters = [];
this.init = function() {
var ctrl = this;
var data = SnapshotService.init(function() {
console.log(ctrl.data); //doesn't even get to the callback function
});
};
});
Ich kann wirklich nicht herausfinden, was mache ich falsch ..
Danke für Ihre Antwort, es gab mich zu verstehen, wie wenig ich wusste von Rückruffunktionen. Ich habe meine Hausaufgaben gemacht und es jetzt zur Arbeit gebracht! –