Odziedziczyłem aplikację kątową i teraz muszę wprowadzić zmianę.Kontrolowanie kolejności wykonywania w angularjs
W ramach tej zmiany niektóre dane muszą zostać ustawione w jednym kontrolerze, a następnie używane od innego. Stworzyłem więc usługę i jeden kontroler zapisał do niej dane, a jeden kontroler odczytał z niej dane.
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....
})
Jednak, kiedy idę do korzystania data
w pageSubController
zawsze jest niezdefiniowany.
Jak mogę się upewnić, że pageController
wykonuje się przed pageSubController
? Czy jest to nawet właściwe pytanie?
EDIT
Moje kod usługi:
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
};
})
możemy rzucić okiem na 'definicji myService'? Dodano również Twój html –
@RahilWazir. wykorzystanie danych jest w rzeczywistości w paragrafach tabeli –
Byłoby wspaniale, gdybyś umieścił swój html, abyśmy wiedzieli, w jaki sposób korzystasz z kontrolerów. –