javascript - ember js获取多个复选框值

标签 javascript ember.js

我的模板:

<form name="spam_list" {{action 'spamDecide' on='submit'}}>
    {{#each model as |spam|}}
    <tr>
        <td>{{input type="checkbox" name="trash[]" checked=spam.isCheck}}</td>
    </tr>
    {{/each}}                       
<button {{action 'checkAll'}}>Check All</button>
</form>

我的路线:

model(){
        // return 10 spams
    },

我的 Controller :

actions:{
        spamDecide: function(model){
             var isCheck = model.getEach('isCheck');
             console.log(isCheck);
        },

        checkAll: function(model){
            var model = this.get('model');
            model.setEach('isCheck',true);
        },
    }

当前操作 checkAll 工作正常,将所有复选框设置为选中。我的问题是,当我手动检查它们时,如何知道哪个复选框被选中。
例如,我设置复选框 1 5 7 被选中,然后每次选中时都会获得等效的 spam.id ?

最佳答案

如果我没看错的话,您正在寻找的是在 spamDecide 中获取已检查对象的列表。您应该能够按照以下方式进行操作:

actions:{
  spamDecide: function(model){
    var checkedModels = model.filterBy('isCheck');
    console.log(checkedModels);
  },
}

同时Array#getEach (alias for Array#mapEach)返回每个项目的 isCheck 属性的数组,filterBy返回 isCheck 属性设置为 true 的项目。

如果您想要 id,则可以执行 checkedModels.mapBy('id')

希望对您有帮助!

关于javascript - ember js获取多个复选框值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39257677/

相关文章:

javascript - 嵌入的 Youtube 视频全屏或导致调整大小

javascript - Ember 2,过滤关系模型(hasMany,belongsTo)并根据关系计算计算属性

javascript - 数据未显示 - Ember js - Rest Api

javascript - javascript 中的 Number.sign()

javascript - 如何将对象添加到数组列表

javascript - 使用纯 JavaScript 调用 Angular 工厂

javascript - 如何在 jQuery 中使用数据属性值作为 ID 选择器?

javascript - 如何同步包含 json 的文本区域和链接到特定 json 属性的文本字段

ember.js - Ember 渲染 hbs 吞咽抛出错误

javascript - 如何在一个 View 中使用多个 ember 数据模型