Ich bin mit drei Angular-Controller:Der beste Weg, Variablen zwischen Steuerungen passieren
**Controller1**
var fetchStudentDetails = function(){
var sDetails = myService.getList(//url-1 here);
sDetails.then(function (data) {
$scope.studentData = data.list;
var studentId = $scope.studentData[0].id;
});
}
fetchStudentDetails();
$scope.loadSecondLevel = function(){
$state.go('secondLevel');
}
**Controller2**
var fetchClassDetails = function(){
var sDetails = myService.getList(//url-2 here);
sDetails.then(function (data) {
$scope.classData = data.list;
var className = $scope.classData[0].name;
});
}
fetchClassDetails();
$scope.loadThirdLevel = function(){
$state.go('thirdLevel');
}
**Controller3**
$scope.putStudentDetails = function(){
// Here I need studentId,className for updateResource
var sDetails = myService.updateResource(//url-3 here);
sDetails.then(function (data) {
});
}
Wo ich StudentID (in Controller1), classname (in Controller2) in eine Funktion, die in Controller3 passieren. Ich habe versucht mit $ rootScope, es funktioniert, aber beim Aktualisieren der Seite $ rootScope Werte werden leer. Weiß jemand, wie man das macht?
Klingt wie Sie‘ re Suche nach [Dienste] (https://docs.angularjs.org/guide/services) – Ankh
Wenn Sie Seite aktualisieren, werden die Daten offensichtlich gehen, das ist wie Single Page Applications (SPA) funktioniert. @Ankh hat Recht. Dienste können verwendet werden. Wenn Sie Daten persistieren möchten, können Sie SessionStorage oder LocalStorage des Browsers ausprobieren, aber das hat natürlich Einschränkungen –
Wenn Sie die Seite aktualisieren, müssen Sie die Werte in [localStorage] speichern (https://developer.mozilla.org/en/docs/Web/API/Window/localStorage) und wie @Ankh kommentierte - Während der Laufzeit der App sollten Sie service/factory (oder beide) verwenden. –