将选中的复选框绑定到Ember.js中的数组属性

时间:2014-06-02 13:23:51

标签: javascript checkbox ember.js

我有一个包含一些输入字段和复选框的表单。路线看起来像这样:

SharedContentNewRoute = Ember.Route.extend
  setupController: (controller) ->
    content = @modelFor("content")
    controller.set('content', @store.createRecord('shared_content'))
    controller.set('handles', @store.find("handle"))
除了其他属性之外,

shared_content 模型还具有 handle_ids 数组属性,该属性需要使用已选中复选框的ID填充。用于填充复选框的模板(可用句柄)在 shared_content / new 模板中定义:

...
{{#each handles}}
  <div class="checkbox">
    {{input type="checkbox" id=id}}
    <label {{bind-attr for="id"}}>{{data.name}}</label>
  </div>
{{/each}}
...

问题是我需要获取已选中的复选框ID并在保存模型之前将它们放入 shared_content 模型(此模板的模型)的handle_ids属性中。这种绑定有一个很好的解决方案吗?

2 个答案:

答案 0 :(得分:0)

看看这个

http://emberjs.com/guides/getting-started/show-when-all-todos-are-complete/ http://emberjs.com/guides/getting-started/toggle-todo-editing-state/

这可能对您有所帮助,当选中复选框时,您可以在选中复选框时执行某个功能,您可以在控制器/路由器上创建一个对象并保存复选框信息

答案 1 :(得分:0)

它需要这样的工作:)

{{#view class="checkbox" tagName="span"}}
  {{input type="checkbox" checked=isSelected viewName="checkboxView"}}
     <label class="checkbox" {{bind-attr for="view.checkboxView.elementId"}}>
         {{data.name}}
      </label>
{{/view}}