2015-02-10 3 views
2

Предположим, labelCls, mandatory и optional являются предопределенными классами CSS.Как связать несколько классов с тройными условиями?

Пример кода:

<div {{bind-attr class=":labelCls (isRequired == "required"?mandatory:optional")}}> 
    Warning! 
</div> 

хотел быть, если isRequired = "required";

<div class="labelCls mandatory"> 
    Warning! 
</div> 
+0

ОК, и что вы получаете взамен? http://emberjs.jsbin.com/xopofa/1/edit?html,css,js,console,output – Kalman

+1

Эта логика должна происходить в вашем контроллере вместо этого ... – Kalman

+0

Предположим, что если я расширяю Ember.Component и записываю что логика в функции, Как вызвать эту функцию в шаблоне? Дайте мне образец синтаксиса, пожалуйста? :) –

ответ

0

на основе ваших комментариев, это звучит, как вы хотите сделать это внутри компонента. Так что ...

Вы можете иметь компонент, который определяется следующим образом:

App.ReqClassComponent = Em.Component.extend({ 
    isRequired: function(){ 
    var someParam = this.get('someParam'); 
    return someParam === 'required'; 
    }.property() 
}); 

Затем вы можете вызвать компонент в шаблоне следующим образом:

{{ req-class someParam='required' }} 

Работа демо here

1

Установить ember-truth-helper addon для eq helper

<div class='labelCls {{if (eq isRequired 'required') 'mandatory' 'optional)}}'> 
    Warning! 
</div> 

если вы хотите привязки, то рассмотрим без кавычек,

<div class={{if (eq isRequired 'required') 'labelCls mandatory' 'labelCls optional)}}> 
     Warning! 
    </div> 
Смежные вопросы