如何在Handlebars模板中使用条件语句,结果有限。如果只有一个按钮点击是因为它是静态的,那么我可以让它工作正常但是当我测试两个按钮时没有骰子 -
<a {{bind-attr class="isClicked:clicked"}} {{action 'raiseValue'}}><i class="fa fa-caret-up"></i></a>
<a {{bind-attr class="isClicked:clicked"}} {{action 'lowerValue'}}><i class="fa fa-caret-down"></i></a>
在我的控制器中 -
selected: '',
isClicked: function (sender) {
return this.get('selected') === sender;
}.property('selected'),
actions: {
raiseValue: function() { this.set('selected', 'raise'); }
}
我期望发生什么 -
当clicked
的值发生变化时,它会将其传递给我的anon函数,并返回clicked ===传入对象的单击值的值。
会发生什么
发件人===&#39; isClicked&#39;在那种情况下
我已经尝试在绑定中使用条件语句,但它根本不起作用 -
<a {{bind-attr class="(isClicked === 'raise'):clicked"}} {{action 'raiseValue'}}><i class="fa fa-caret-up"></i></a>
基本上我试图模仿一个单选按钮是如何工作的我猜...有什么想法在这里出了什么问题?
答案 0 :(得分:2)
您无法将参数传递到此类计算属性中。简单的解决方案是将它拆分为:
isRaiseClicked: function () {
return this.get('selected') === "raise";
}.property('selected'),
isLowerClicked: function () {
return this.get('selected') === "lower";
}.property('selected'),
<a {{bind-attr class="isRaiseClicked:clicked"}} {{action 'raiseValue'}}><i class="fa fa-caret-up"></i></a>
<a {{bind-attr class="isLowerClicked:clicked"}} {{action 'lowerValue'}}><i class="fa fa-caret-down"></i></a>