Emberjs在更改时获得多个复选框属性

时间:2015-04-24 20:19:28

标签: ember.js

我有多个输入复选框,我想知道它们中至少有一个更改其属性"已检查"然后启用按钮" sim"。

<div id="alertReject{{post.id}}" style="display: none;">
  Você deseja rejeitar a resposta #ID {{post.id}}? Porque?
  <hr style="margin: 5px 0;">
  <div class="checkbox">
    <label>{{input type="checkbox"}} Ofensas</label>
    <label>{{input type="checkbox"}} Discussão agressiva entre os participantes</label>
    <label>{{input type="checkbox"}} Discussão pessoalizada</label>
    <label>{{input type="checkbox"}} Postagens que fogem ao tema</label>
    <label>{{input type="checkbox"}} Questionamentos sobre metodologia</label>
    <label>{{input type="checkbox"}} Questionamentos sobre definição de conceitos</label>
    <label>{{input type="checkbox"}} Participante se volta contra o moderador</label>
  </div>
  <hr style="margin: 5px 0;">
  <div class="form-group">
    <label>Mensagem adicional: <b>(opcional)</b></label>
    <textarea name="{{post.id}}-msgOpt"></textarea>
  </div>
  <button class="btn btn-danger" disabled="disabled" {{action 'rejectPost' post}}>Sim</button> |
  <button class="btn btn-default" {{action 'dismissPopover'}}>Não</button>
</div>

我已尝试使用组件,视图和操作,但我无法获得复选框的更改事件。

这样做的最佳方式是什么?

PS:需要注意的一件重要事情是这个结构在一个循环中。

1 个答案:

答案 0 :(得分:1)

给出

{{input type="checkbox" checked=foo}}
{{input type="checkbox" checked=bar}}
{{input type="checkbox" checked=baz}}

如果检查了一个或多个值,则将计算属性添加到模板的true上下文

hasResponded: Ember.computed.or('foo', 'bar', 'baz')

然后将其绑定到提交按钮上的禁用类:

<button {{action 'rejectPost' post}}
  {{bind-attr class="hasResponded::disabled :btn :btn-danger"}}>
  Sim
</button>