Mein Problem ist, dass ich eine schnelle Validierungsprüfung durchführen muss, wenn der Controller meiner Seite ausgeführt wird, um zu überprüfen, ob die Abfrageparameter gültig sind. So jetzt ich dies tun:
if (invalid params) {
$state.go('state', {param: validParam}, {reload: true});
}
// Controller logic here to initialise the page
Das Verhalten hier, dass ich erwarte, ist, dass, wenn der Parameter ungültig ist, der gesamte Controller-Reloads mit dem gültigen Parameter und alles in Ordnung ist. Was tatsächlich passiert, ist, dass selbst nach dieser $state.go
Zeile der Rest des Controllers noch versucht zu laufen.
Die einzige Art, wie ich es geschafft haben, dies zu beheben, ist der Controller-Logik in eine wie else
Aussage zu tun, bewegen so:
if (invalid params) {
$state.go('state', {param: validParam}, {reload: true});
} else {
// Controller logic here to initialise the page
}
Dies funktioniert, aber ich finde es nicht ideal viel zu bewegen komplizierte Logik in diese else
Aussage, und ich würde erwarten, dass der Controller an der $state.go
stoppen und den Controller neu laden ... daher, warum ich reload: true
benutze.
Also irgendwelche Ideen, warum dies nicht wie erwartet geschieht?
true true, werde ich den Controller in eine Funktion wickeln und zurück zu Ihnen – germainelol
Danke für die Antwort bekommen, es hat funktioniert. Ich denke, das ist einer der Gründe, warum ich manchmal kein Fan von Angular bin. Ich dachte, es wäre ein Angular oder UI-Router-Problem, obwohl es in Wirklichkeit nur ein einfaches JavaScript-Problem ist./facepalm – germainelol
Großartig wenn das ein bisschen geholfen hat;) –