2013-08-12 3 views
8

Lassen Sie uns sagen, ich habe so etwas wie:Hinzufügen von Attributen zu Eingabeelement in Lenker (verwendet mit Ember.js 1.0)

{{input value=someModel }} 

Und dann will ich mit dem Eingang des einfachen required HTML 5 Attribut hinzufügen.

Wie würde ich das tun?


Bitte beachte, dass ich die folgenden Variationen ohne Erfolg versucht:

{{input value=someModel required }} <!-- doesn't parse --> 

{{input value=someModel required='required' }} <!-- doesn't render the attribute --> 

{{view Ember.TextField valueBinding=someModel 
    required='required' }} <!-- doesn't render the attribute --> 

<input required {{bindAttr value=someModel}} 
    /> <!-- doesn't update the model, as expected --> 

Update: Diese Frage war für Ember 1,0.

Antwort

5

global Um die Unterstützung für zusätzliche Attribute hinzufügen, die Sie Ember.TextField

http://emberjs.com/api/classes/Ember.TextField.html

+3

Das ist schrecklich! (was nicht deine Schuld ist, danke, dass du darauf gedeutet hast) - Irgendeine Idee, warum es so ist? und ob es einen Weg gibt, es für alles, was ich hinzufügen möchte, offen zu halten? – Meligy

+0

Nicht alle Browser unterstützen 'required', daher wird das Framework mit einem minimalen Satz ausgeliefert, sodass Entwickler zusätzliche Attribute hinzufügen können, wenn sie wissen, dass sie nur auf Browser abzielen, die dies unterstützen. –

+2

Dies könnte ein Thema für den Diskurs sein, aber wirklich, ich denke nur, dass es keinen Sinn hat, das, was der Benutzer mit seinem Markup machen kann, einzuschränken (solange es kein Code ist, beispielsweise keine Lenker-Ausdrücke). Ich vermute, das ist ein Nebeneffekt von Designbeschränkungen in der Bibliothek, wenn es so gedacht ist, um als Feature zu dienen, wäre das nichts anderes, als Reibung hinzuzufügen IMHO. – Meligy

5

Zuerst müssen Sie die Unterstützung auf das erforderliche Attribut hinzufügen wieder öffnen können:

Ember.TextSupport.reopen({ 
    attributeBindings: ["required"] 
}) 

dann in Ihre Ansicht:

{{view Ember.TextField required="required"}} 
8

Ich benutze Ember Version 1.5.1 und benötigt = "erforderlich" scheint jetzt gut zu funktionieren. Dieses Markup:

{{input class="form-control" value=firstName autofocus="autofocus" required="required"}} 

... macht dies:

<input id="ember392" class="ember-view ember-text-field form-control" autofocus="autofocus" required="required" type="text"> 
+0

Danke, das hat bei Ember 2.7 für mich funktioniert – rmcsharry

Verwandte Themen