Ich habe eine eckige App geerbt und muss jetzt eine Änderung vornehmen.Reihenfolge der Ausführung in angularjs steuern
Als Teil dieser Änderung müssen einige Daten in einem Controller festgelegt und dann von einem anderen Controller verwendet werden. Also habe ich einen Service erstellt und ein Controller Daten in ihn schreiben lassen und ein Controller hat Daten daraus ausgelesen.
angular.module('appRoot.controllers')
.controller('pageController', function (myApiService, myService) {
// load data from API call
var data = myApiService.getData();
// Write data into service
myService.addData(data);
})
.controller('pageSubController', function (myService) {
// Read data from service
var data = myService.getData();
// Do something with data....
})
Allerdings, wenn ich data
zu verwenden gehen in pageSubController
es immer nicht definiert ist. Wie kann ich sicherstellen, dass pageController
vor pageSubController
ausgeführt wird? Oder ist das überhaupt die richtige Frage?
EDIT
Mein Service-Code:
angular.module('appRoot.factories')
.factory('myService', function() {
var data = [];
var addData = function (d) {
data = d;
};
var getData = function() {
return data;
};
return {
addData: addData,
getData: getData
};
})
Können wir einen Blick auf 'myService' Definition haben? Auch Ihre html –
@ RahilWazir hinzugefügt. Die Verwendung der Daten erfolgt tatsächlich in ng-table params –
Es wäre toll, wenn Sie Ihren HTML-Code angeben, damit wir wissen, wie Sie die Controller verwendet haben. –