Wie erstelle ich ein wiederverwendbares partielles Duplikat-Markup in ember.js?

8

Angesichts dieses Stücks HTML:

%Vor%

Wie mache ich daraus ein wiederverwendbares Teil für welches Attribut ich will? IE: E-Mail, Passwort, Passwortbestätigung, etc.

Ich würde eine Art Ansichtshierarchie annehmen, aber ich bin mir nicht ganz sicher.

BEARBEITEN : Nach weiteren Erkundungen habe ich {{view}} und {{render}} ausgeschaltet und herausgefunden, was genau ich brauche:

Ich möchte:   1. Verwenden Sie eine bestimmte Ansicht (InputView)   2. Verwenden Sie einen bestimmten Controller (vorzugsweise ähnlich benannt: InputController) ( {{view}} tut das nicht, denke ich)   3. Mehrmals verwenden können ( {{render}} kann dies nicht tun)   4. Kann Werte übergeben ( {{render}} kann dies nicht tun)

Beispiel:

%Vor% %Vor% %Vor% %Vor%     
krainboltgreene 17.02.2013, 20:35
quelle

3 Antworten

3

Ich würde eine Ansicht erstellen, die alle Parameter enthält, die variabel sind. Wie:

%Vor%

Von dort können Sie die Bezeichnung, die verschiedenen Klassennamen extrahieren und dann Ember.TextField verwenden, um den Wert an zu binden.

Sobald Sie alle diese Argumente in die Ansicht übernommen haben, sollte es schön und einfach sein, das Markup mit einer Mischung aus bindAttr s, einigen berechneten Eigenschaften und Ember-Helfern (wie Ember.TextField ) zu erstellen. ).

    
Wildhoney 17.02.2013 22:12
quelle
1

Ich bin neu bei Emberjs und suche nach ziemlich genau der gleichen Sache, aber könntest du nicht einfach Ссылка dafür? Ich werde es selbst ausprobieren, kann also mehr Updates geben, wenn das klappt.

Aktualisierung: Ok, ich habe es zur Arbeit gebracht. Ich habe einen neuen Helpers-Ordner mit FormgeneratorHelper.js und dem folgenden Code erstellt:

%Vor%

Und dann, egal in welcher Vorlage Sie tun können:

%Vor%

Ich mag die Idee, Helfer zu benutzen, aber wenn Sie einfaches Javascript (im Gegensatz zu CoffeScript) verwenden und mehr als eine Codezeile haben, wird es leider ein bisschen hässlich. Aber werde wahrscheinlich immer noch diese Methode verwenden.

    
Markus 20.02.2013 15:30
quelle
1
  

Wie mache ich daraus ein wiederverwendbares Teil für welches Attribut ich will? IE: E-Mail, Passwort, Passwortbestätigung, etc.

Was Sie wollen, ist der experimentelle Helfer {{control}} . Der Kontrollhelfer wird derzeit entwickelt und gilt als experimentell. Um es zu aktivieren, setzen Sie ENV.EXPERIMENTAL_CONTROL_HELPER = true , bevor Sie Ember anfordern.

  

Ich möchte:   1. Verwenden Sie eine bestimmte Ansicht (InputView)   2. Verwenden Sie einen bestimmten Controller (vorzugsweise ähnlich benannt: InputController) ({{view}} tut dies nicht, denke ich)

Out-of-Box erwartet der Control Helper, dass ihm ein Vorlagenname übergeben wird. Dieser Vorlagenname wird verwendet, um eine übereinstimmende Ansicht und einen passenden Controller zu suchen. Also zum Beispiel:

%Vor%

Siehe:

  
  1. Sie können dies mehrmals verwenden ({{render}} kann dies nicht tun)
  2.   

Ein Steuerelement kann mehrmals verwendet werden

  
  1. Werte können übergeben werden ({{render}} kann dies nicht tun)
  2.   

Wie der Helper {{view}} akzeptiert {{control}} beliebige Name / Wert-Paare. Wie in Ihrem Beispiel könnte man Optionen manuell an den Steuerhelfer übergeben. Wie der Helper {{view}} werden diese Optionen Eigenschaften der View-Instanz:

%Vor%

Siehe jsbin für ein funktionierendes Beispiel

Beachten Sie auch, dass Ein Steuerelement ist kann ein Modell angeben, das in seiner Vorlage verwendet werden soll - damit können wir Eigenschaften an Modelldaten binden. Auch wenn sich das Modell eines Controllers ändert, werden seine untergeordneten Controller geändert werden zerstört , so dass das Steuerelement wie erwartet zurückgesetzt wird, wenn das Modell ausgelagert wird.

    
Mike Grassotti 24.02.2013 05:22
quelle