以下面的示例为例:如果未选中复选框,则禁用按钮,并在选中时启用按钮:

车把

<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的observable属性,仅在我的车把模板中使用{{input type="submit" value="Register" disabled=!isAgreed}}这样的东西。有没有办法做到这一点?

最佳答案

或者,您可以绑定(bind)一个disabled类,当isAgreedfalse时,该类将为true,如下所示。

<button type="submit" {{bind-attr class=":btn :btn-primary isAgreed::disabled"}}>Register</button>

由于还使用了 twitter-bootstrap ,因此此disabled类将为按钮提供禁用的行为。

这是您的问题的简化bin

08-19 10:53