2015-07-03 8 views
6

Ich habe mehrere verschachtelte Ansichten ui-view auf meiner Seite mit entsprechenden Zuständen zum Festlegen von Vorlagen in diesen Ansichten. Wenn ich in einen Kind-Status übergehe, wird der Controller aufgerufen, der jedem seiner Eltern-Zustände zugeordnet ist. Ich möchte das verhindern. Wenn ich zum Beispiel in den Zustand root.question.mcq.menu übergehe, wird auch der Controller aufgerufen, der dem Status root.question.mcq zugeordnet ist.UI-Router AngularJs: Verhindern des Aufrufs des übergeordneten Status-Controllers beim Übergang in den untergeordneten Zustand

Wie kann ich dies verhindern, so dass nur die mit root.question.mcq.menu verbundene Steuerung aufgerufen wird.

+0

Wie sieht Ihr Code aus? –

Antwort

1

Es hängt davon ab, woher Sie kommen. Kommen Sie vom Elternteil oder von einem Geschwister des Zielzustands, sollte der Eltern-Controller nicht initialisiert werden. Wenn Sie jedoch aus einem anderen Status kommen, wird der Eltern-Controller initialisiert. Wenn dieses Verhalten für Sie falsch ist, haben Sie wahrscheinlich ein Designproblem.

+0

Dies ist absolut richtig, und nur um den Punkt zu unterstreichen, ist die Instantiierung des Controllers der Eltern beim Übergang zum Kind grundlegend für das Design des UI Routers. Die Statushierarchie wird der DOM-Hierarchie zugeordnet, daher ist es nicht sinnvoll, über die Instanziierung eines untergeordneten Objekts nachzudenken. –

+1

Ich komme von Eltern und wie es bereits initialisiert ist, denke ich, sein Controller sollte nicht erneut initialisiert werden. – suheb

+0

Bitte bieten Sie einen Plünderer? – Michael

Verwandte Themen