Die Ember guide on binding data attributes besagt, dass "Wenn Sie Datenbindung mit einem booleschen Wert verwenden, wird das angegebene Attribut hinzufügen oder entfernen." Ich versuche, diese Eigenschaft zu verwenden, um die selected
Attribute auf <option>
s dynamisch festzulegen. Ich finde, dass ich das Attribut disabled
dynamisch festlegen kann, aber das Attribut selected
wird immer weggelassen, nein, ob der Boolesche Wert wahr oder falsch ist.Wie kann ich das `selected` Attribut dynamisch auf ein` <option>` Tag setzen?
Vor diesem Lenker Vorlage:
<option disabled={{false}} selected={{false}}>One</option>
<option disabled={{true}} selected={{true}}>Two</option>
ich folgende HTML erhalten:
<option>One</option>
<option disabled>Two</option>
Warum selected={{true}}
produzieren kein selected
Attribut in der gerenderten Ausgabe?
Um ein bisschen mehr Kontext zu geben, folge ich diesen Artikel auf How to do a select in Ember 2.0. Mit der in diesem Artikel beschriebenen Methode kann ich die Daten im Controller erfolgreich aktualisieren, wenn das Ereignis ausgelöst wird, aber das DOM wird aufgrund der Änderung nicht aktualisiert.
Ich habe this ember-twiddle zusammengestellt, die zwei select
Elemente enthält. Man benutzt select={{bool}}
, was nicht so funktioniert, wie ich es möchte. Die andere verwendet eine lange Hand {{#if bool}}...{{else}}...{{/if}}
, die funktioniert, sieht aber schrecklich aus.
'selected' ist eine Eigenschaft, kein Attribut mit ein Wert – Sonny
Ist das Problem, dass Sie '{{true}}' und '{{false}}' 'hartcodieren? Ihr Beispiel ist ein wenig erfunden. Statt '' {{true}} ''und' {{false}} '' hart zu codieren, können Sie die Abwesenheit oder Präsenz des' ausgewählten' Attributs fest codieren. –
@ChrisPeters Ich gebe zu, dass die Verwendung von '{{true}}' und '{{false}}' künstlich aussieht, aber ich wollte das Beispiel einfach halten. Die Ergebnisse wären die gleichen, wenn '{{}}' auf eine berechnete Eigenschaft referenziert, die 'wahr' oder 'falsch' zurückgibt. – nelstrom