am utilizzando ui-router angolare per gestire gli stati della mia SPA. ho questo percorso:Come preservare i parametri del router-ui sull'aggiornamento del browser
.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();
}
}
})
Inoltre, sto passando parametro 'dati' come oggetto JSON allo Stato. Ora, quando prima carico questo stato, tutto va bene. Ma quando eseguo l'aggiornamento del browser (tasto F5) $ stateParams.data è nullo nella funzione di risoluzione dello stato.
Come posso risolvere questo? Vedo queste possibili soluzioni: 1. persistere in qualche modo i parametri 2. aggiornare il browser (non so come) per interrompere il browser che aggiorna l'app. 3. durante l'aggiornamento goto stato di pari livello.
Aiutateci
UPDATE Ok, ho impostato i dati in questo modo:
vm.editRole = function(roleId){
var role = dataService.getRoleById(roleId).then(function(result){
$state.go('roleEdit', {data:angular.toJson(result)});
});
}
UPDATE 2 Il controller roleEdit assomiglia a questo:
(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();
}
}
})();
Avete considerato l'archiviazione locale? –
Come si imposta \ data \? – maurycy
# Anid Monsour - Sto considerando qualcosa adesso. L'archiviazione locale è un'opzione ma devo trovare un posto per cancellarla. – Luka