2013-12-08 49 views
3

我試圖將兩個屬性綁定到Ember文本字段,但它不起作用。將值和類綁定到Ember.TextField

{{input type="text" value=name class="uk-width-1-1" placeholder="Name" required="" }} 

errors.name爲真時,如何將「錯誤」類綁定到此文本字段?

回答

7

你在找什麼做的是如下:

{{input type="text" value=name classBinding=":uk-width-1-1 errors.name:error" placeholder="Name" required=""}} 

只要error.name是一個真正的布爾值,這裏就不需要計算屬性。在classBindings中:uk-width-1-1將始終打印,如果errors.name爲true,錯誤將僅存在於此處。

僅供參考,假設您有一個錯誤和非錯誤類您想使用。你可以這樣做errors.name:error:non-error,當errors.name爲真時會有錯誤,當它爲假時是非錯誤的。

1

你可以將其更改爲:在你看來

{{input type="text" value=name classBinding="textFieldClasses" placeholder="Name" required="" }} 

末定義的線沿線的一個計算的屬性:

textFieldClasses: function() { 
    var class = "uk-width-1-1"; 
    if (this.get('controller.content.errors.name')) class += "error"; 
    return class; 
}.observes('controller.content.errors.name'),