emberjs ruft alle Formularfelder / Werte auf einmal ab

9

Beim Erstellen neuer Formularfelder in ember.js scheint es einen mehrstufigen Prozess zu geben. Zum Beispiel erstelle ich die Formularfelder:

%Vor%

Dann in meinem Controller habe ich das:

%Vor%

Wie Sie sehen können, sind E-Mail und Passwort oben als Null definiert und dann wieder in der Datenvar, um die "Werte" zu erhalten, wenn der Benutzer die Felder ausfüllt.

Gibt es einen Weg dahin, wo ich einfach sagen kann ... nimm alle Werte in das Formularfeld, weise null zu und bekomme dann alle Formularfeldwerte in einer Zeile? Ähnliches vielleicht, um das Formular in jQuery zu serialisieren?

    
Matt 17.03.2015, 14:05
quelle

1 Antwort

4

Die kurze Antwort ist, dass Sie Wiederholung brauchen. Die lange Antwort ist, dass Sie Wiederholungen vermeiden können, aber zu einem Preis, der es nicht wert ist.

Zunächst müssen Sie die Felder in Ihrem Controller nicht definieren. Diese zwei Zeilen könnten vollständig gelöscht werden:

%Vor%

Ich würde jedoch empfehlen, sie für Dokumentationszwecke zu behalten. (Sie sind jedoch unnötig.)

Zweitens müssen Sie erkennen, dass Ember kein Konzept einer "Form" hat. Sie haben keine Formulare angegeben, nur zwei Eingabefelder. Wenn Sie möchten, könnten Sie wahrscheinlich eine Formularkomponente erstellen, um genau das zu tun, was Sie wollen, aber ich würde nur vorschlagen, wenn Sie ein Los von Formularen erstellen würden. Am Ende wirst du ziemlich viele Wiederholungen haben.

Davon abgesehen denke ich, dass die Art und Weise, wie Sie Ihren Code schreiben, perfekt ist. Suchen Sie nicht nach dem kürzesten Weg, um Code zu schreiben; Suchen Sie nach der lesbarsten Art, Code zu schreiben. Der Code, den Sie derzeit haben, ist (meiner Meinung nach) die am besten lesbare Version dieses Codes.

EDIT: Ich habe nicht bemerkt, dass ObjectController verwendet wurde. Das leitet Aufrufe an den Inhalt des Controllers weiter und setzt sie, wenn die Felder nicht explizit auf dem Controller gesetzt sind. Das bedeutet, dass das Entfernen dieser beiden Zeilen nicht funktioniert. Wenn Sie jedoch von Controller anstelle von ObjectController (das sowieso veraltet ist) erweitern, wird es funktionieren.

    
GJK 17.03.2015 14:20
quelle

Tags und Links