以下面的示例为例,如果未选中复选框,则禁用按钮,并在选中时启用按钮:
Handlebars :
<form {{action "register" on="submit"}}>
{{input type="checkbox" checked=isAgreed}}
{{input type="submit" value="Register" class="btn btn-primary" disabled=isNotAgreed}}
</form>
Javascript:
App.ApplicationController = Ember.ObjectController.extend({
content:{
isAgreed:false
},
isNotAgreed:function(){
return !this.get('isAgreed');
}.property('isAgreed'),
actions:{
register:function(){
alert("registered");
}
}
});
如本 JSBin 所示.
我想知道是否有更简洁的方法来执行此操作。例如,删除 isNotAgreed
可观察属性并仅在我的 Handlebars 模板中使用一些东西,例如 {{input type="submit"value="Register"disabled=!isAgreed}}
。有办法做到这一点吗?
最佳答案
或者,您可以绑定(bind)一个类 disabled
,当 isAgreed
为 false
时,该类将为 true,如下所示。
<button type="submit" {{bind-attr class=":btn :btn-primary isAgreed::disabled"}}>Register</button>
由于您还使用了 twitter-bootstrap,因此此 disabled
类将为按钮提供类似 disabled 的行为。
这是一个简化的 bin你的问题。
关于javascript - "Not" Handlebars 模板内的运算符(operator),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18699938/