ho uno stato che assomiglia a qualcosa di simileui-router non vede di ricerca URL params dopo pagina aggiornare
.state('home.foo.bar', {
url: 'view?one&two',
views: {
'base': {
templateUrl: 'blah',
controller: 'blahCtrl'
}
},
reloadOnSearch: false
})
se ci si dirige verso questo stato nel mio modello con
ui-sref="home.foo.bar({one: valueOne, two: valueTwo})"
tutto
sta bene e l'url è
.com/vista? uno = valueOne & due = valueTwo
tuttavia se aggiorno la pagina l'URL cambia in solo .com/view e né $state.params
o $stateParams
contiene i valori.
se aggiungo un passo risolvere in questo modo
.state('home.foo.bar', {
url: 'view?one&two',
views: {
'base': {
templateUrl: 'blah',
controller: 'blahCtrl'
}
},
resolve: {
p: function($location, $stateParams, $state) {
console.log($location.search(), $stateParams, $state);
if(!$stateParams.one && !$stateParams.two {
$stateParams.one = $location.search().one;
$stateParams.two = $location.search().two;
} else {
return $location.search().one;
}
}
},
reloadOnSearch: false
})
poi quando ho inizialmente navigazione allo stato nel mio modello della dichiarazione stampe registro nulla per $location.search()
ma mostra oneValue
e twoValue
nel $stateParams
e $state.params
. Quando aggiorno il suo opposto $location.search()
mostra correttamente i parametri e i loro valori ma $stateParams
e $state.params
sono vuoti.
aggiungendo la dichiarazione if e impostando i valori risolve esplicitamente il mio errore ma questo non può funzionare come previsto può?
mi manca qualcosa di ovvio?
sembra che tu debba guardare https://github.com/angular-ui/ui-router/issues/1079 –
Grazie per la tua risposta, ho letto quella discussione ma non la penso è lo stesso problema a cui mi riferisco qui. Stanno tutti parlando di problemi durante la navigazione tra stati. Sto parlando di un problema quando aggiorno la pagina del browser in modo che l'app angolare nella sua interezza venga ricaricata da zero – Ir1sh