Lassen Sie den Elternstatus mit ui-router als Kindstatus festlegen

8

Ich habe diese Zustandsstruktur:

%Vor%

Es funktioniert gut, außer wenn die URL einfach /places ist, ohne dass eine Stadt dahinter steht.
Wie kann ich einen Standardwert für templateUrl im untergeordneten Status haben?

Ich denke, der beste Weg wäre, die ui-view von PlacesController zu setzen, aber das scheint nicht möglich zu sein.

    
Francisc 15.12.2013, 18:19
quelle

5 Antworten

0

Wie auf der Angular-UI Wiki-Seite angegeben:

  

Es gibt drei Möglichkeiten, einen Zustand zu aktivieren:

     
  1. Rufen Sie $ state.go () auf. High-Level-Komfort-Methode.
  2.   
  3. Klicken Sie auf einen Link mit der Anweisung ui-sref.
  4.   
  5. Navigieren Sie zu der URL, die dem Status zugeordnet ist.
  6.   

Ссылка

    
Francisc 03.01.2014, 15:03
quelle
15

Versuchen Sie, einen anderen untergeordneten Status zu definieren, dessen URL auf eine leere Zeichenfolge festgelegt ist:

%Vor%

Fügen Sie dann abstract: true zum übergeordneten Status hinzu.

    
Aaron Torgerson 15.12.2013 22:26
quelle
7

Sie müssen Ihre Standardvorlage direkt zwischen den ui-view -Tags in Ihrem HTML-Code einfügen, ohne dass die Statuskonfiguration geändert werden muss:

%Vor%

Wenn Sie jetzt zu /places navigieren, sehen Sie die Nachricht "Bitte wählen Sie einen Ort". Wenn Sie zu /places/london navigieren, sehen Sie "London is amazing!".

    
Elise 11.05.2014 15:07
quelle
1

Wie von Aaron angegeben, können Sie $ state verwenden, um zu einem Standard-Child-Status zu navigieren, aber hier gibt es einen Haken: Angenommen, Sie haben mehr als 1 Kind:

%Vor%

und in Ihrem übergeordneten Controller PlacesController haben Sie $ state.go (places.city) . Wenn der übergeordnete Controller dh PlacesController aufgerufen wird, werden Sie zum Stadtstatus umgeleitet . Wenn sich also jemand im Zustand child2 befindet und eine Aktualisierungsschaltfläche drückt, wird der übergeordnete Controller aufgerufen und er wird in die Stadt umgeleitet, was nicht gewünscht ist!

ANS: So können Sie nach dem aktuellen Status suchen, bevor Sie eine Umleitung durchführen, dh wenn sich die Person im Elternstatus befindet und dann zu einem Standard-Kindstatus umleitet, aber wenn sich die Person in einem der untergeordneten Status befindet dann führe die Umleitung im übergeordneten Controller nicht aus: -

%Vor%

hoffe das hilft!

    
Rishul Matta 08.09.2014 11:11
quelle
1

Verwenden Sie die Auflösung für den übergeordneten Status

%Vor%

Prüfe auf Syntaxfehler, ich bin an coffeescript gewöhnt:)

    
goldylucks 18.05.2015 11:22
quelle

Tags und Links