【问题标题】:How to get checkbox state in Ember.js?如何在 Ember.js 中获取复选框状态?
【发布时间】:2015-07-15 15:38:48
【问题描述】:

我创建了一个组件,它可以正确设置值来呈现复选框。它们也可以响应点击事件,所以在 hbs 模板中有一个循环,它会像这样呈现复选框:

<input class="conditions" type="checkbox" value="{{c.id}}" 
  {{action "conditionChecked" r preventDefault=false}} 
  checked={{c.checked}} />{{c.name}}

在组件中,我有 actions: 包含 conditionChecked 钩子。钩子有c 参数,这是我从模板中传递的,它也有checked 属性,总是等于true

如何根据用户的选择(选中/未选中)访问复选框的实际状态?

编辑:我是 Ember.js 的新手。如果您能提供一个示例的链接,那就太好了。

【问题讨论】:

    标签: templates ember.js checkbox components


    【解决方案1】:

    首先,我建议您使用 Ember {{input type="checkbox" checked=someControllerProperty}}。这会将选中的值作为布尔值绑定到您传递给input helper 的checked 属性的任何控制器属性。不需要所有的动作。它是 Ember,有两种方式绑定,因此将一个 true 值传递给这个助手将呈现一个带有复选标记的复选框。

    如果你必须走你要去的路(看起来你正在与框架作斗争),在你的 conditionChecked 动作中,你可以使用方便的花花公子视图助手 jquery 选择器功能 this.$() 并找到你的复选框.一旦找到,观察它的检查属性,并设置一些值。我得说,你在这里重新发明轮子,因为这正是内置的 input type="checkbox" 助手所做的

    【讨论】:

    • 但是,如果我需要收集所有复选框的值并组成一个数组(最终它是服务器端 Postres 中存储的 JSON 字段),如何将复选框绑定到单个属性?
    • 你可以有一个布尔数组和{{#each b in booleanArray}} {{input type="checkbox" checked=b}}{{/each}}
    猜你喜欢
    • 2013-10-05
    • 1970-01-01
    • 2017-05-12
    • 1970-01-01
    • 2012-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多