2013-12-08 2 views
3

Ember 텍스트 필드에 두 개의 특성을 바인딩하려고하는데 작동하지 않습니다.Ember.TextField에 바인딩 값 및 클래스

{{input type="text" value=name class="uk-width-1-1" placeholder="Name" required="" }} 
errors.name에 해당하는 경우 나는이 텍스트 필드에 "오류"클래스를 결합 할 수있는 방법

? 다음과 같이

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

답변

7

무엇을 당신이 찾고있는 것은 :의 라인을 따라 계산 된 속성을 정의보기에

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

끝 :

1

당신은 그것을 바꿀 수

{{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이 참일 때 에러를 가질 것이고 거짓일 때 에러가 아닐 것입니다.