verwende einen eckigen UI-Router, um die Zustände meines SPA zu verwalten. Ich habe diesen Weg:So erhalten Sie die Parameter des ui-routers bei der Aktualisierung des Browsers
.state('index.administration.security.roleEdit', {
url: '/roleEdit',
templateUrl: 'app/administration/security/role/roleEdit.html',
controller: 'roleEditCtrl',
controllerAs: 'roleEditCtrl',
params: { data: null },
resolve: {
role: function ($stateParams) {
return angular.fromJson($stateParams.data);
},
modules: function (securityService) {
return securityService.getAllModules();
}
}
})
Auch ich bin in den Zustand ‚Daten‘ Parameter als JSON-Objekt übergeben. Jetzt, wenn ich diesen Zustand zum ersten Mal lade, ist alles in Ordnung. Aber wenn ich Browser aktualisieren (F5-Schlüssel) ist die $ stateParams.data Null in der Auflösungsfunktion des Staates.
Wie kann ich das lösen? Ich sehe diese möglichen Lösungen: 1. Persistent irgendwie Parameter 2. Override Browser aktualisieren (weiß nicht wie), um den Browser zu stoppen, die App zu aktualisieren. 3. Beim Aktualisieren auf anderen Geschwisterstatus.
Bitte helfen
UPDATE Ok, ich Daten wie folgt festgelegt:
vm.editRole = function(roleId){
var role = dataService.getRoleById(roleId).then(function(result){
$state.go('roleEdit', {data:angular.toJson(result)});
});
}
UPDATE 2 Der roleEdit-Controller sieht wie folgt aus:
(function(){
angular.module('app.administration').controller('roleEdit',
['role','modules', '$scope', 'securityService', '$state', roleEditCtrl]);
function roleEditCtrl('role', 'modules',$scope, securityService, $state){
var vm = this;
vm.roles = roles;
vm.originalRole = angular.copy(role);
vm.modules=modules;
vm.saveChanges = _saveChanges;
vm.cancel = _cancel;
return vm;
function _saveChanges(){
securityService.UpdateRole(vm.role).then(function(result){
$staste.go('^.roles');
}
}
function _cancel(){
vm.role = angular.copy(vm.originalRole);
$sscope.roleEditForm.$setPristine();
}
}
})();
Haben Sie einen lokalen Speicher in Betracht gezogen? –
Wie legen Sie \ data \ fest? – maurycy
#Anid Monsour - Ich überlege gerade etwas. Lokaler Speicher ist eine Option, aber dann muss ich einen Ort finden, um ihn zu löschen. – Luka