handling action im ansicht nicht router

7

Ich habe eine Ansicht mit erweiterbaren / reduzierbaren Inhalten, die ich durch Klicken auf die Zeile in der Tabelle umschalten könnte. Vor pre1.0 hatte ich das in der Vorlage:

%Vor%

was zuvor aus meiner Sicht gehandhabt wurde:

%Vor%

Nach dem Upgrade auf pre1.0 wird die Aktion jedoch direkt vom Router ausgeführt. Dies ist in vielen Situationen sinnvoll, aber in diesem Fall ist die Erweiterung wirklich ein Problem. Ich habe versucht, dies nur durch einen Click-Event-Handler ohne Glück zu ersetzen.

Gibt es eine Best Practice für die Behandlung eines View-Concern-Ereignisses wie dieses mit pre1.0?

    
outside2344 09.08.2012, 16:27
quelle

3 Antworten

20

Veraltete Antwort

Auch wenn die Antwort von @ outside2344 funktioniert, denke ich, dass es nicht genau richtig ist. Tatsächlich repräsentiert parentView nicht die View, sondern die parentView ihrer parentView. Seit 1.0-pre behalten Views ihren Kontext bei, sodass in der Vorlage this für parentView, parentView für parentView.parentView und view für die aktuelle Ansicht stehen. Hier ist eine Geige, um dies zu veranschaulichen: Ссылка

Für mich lautet die Antwort {{action expand target="view"}}

BEARBEITEN (antwortet auf @Gal Ben-Haim)

Aktionshelfer verhalten sich in einer routerbasierten Anwendung kaum anders. Zitat aus der Dokumentation:

  

Wenn in einer Router-gesteuerten Anwendung eine Aktion nicht von einer Ansicht abgefangen wird , wird dieses Ereignis an die Route weitergeleitet, in der diese Ansicht gerendert wurde. Wenn es sich bei dieser Route um eine Unterroute einer anderen Route handelt, wird dort der Übergang bis zur Routendefinition auf oberster Ebene gesucht, unserem Über-Container: root.

     

Dieser blubbernde Effekt erlaubt es bestimmten Aktionen, privat zu bleiben. Wenn bestimmte Übergänge nur für bestimmte Unter-Unterzustände verfügbar sein sollen, setzen Sie den Übergang auf den Unterzustand und Sie haben eine Art von Scoping erreicht.

Im Grunde heißt das für mich in Router-gesteuerten Apps , wenn Sie ein Ziel im Aktions-Helfer nicht explizit definieren, wird es an den Router gesendet.

Aktualisierte Antwort

Ich denke, jetzt beantworten die Führer sehr gut diese Frage. siehe Ссылка

    
sly7_7 09.08.2012, 18:45
quelle
1

In pre1.0 können Sie das View-Feld zur Aktion machen, indem Sie target="parentView" zur Aktion hinzufügen:

%Vor%     
outside2344 09.08.2012 16:30
quelle
1

Ereignisse blubbern nicht standardmäßig durch die View-Hierarchie. Sie können dies ändern (obwohl ich nicht sagen kann, dass ich es empfehlen würde):

%Vor%     
sandstrom 23.09.2013 14:57
quelle

Tags und Links