ember.js - ember-composable-helpers 复选框未选中
问题描述
我在 Ember 中使用可组合的助手。当我单击父复选框时,所有子复选框都会选中和取消选中,但父复选框从不显示复选标记。我在这里想念什么?
家长:<input type="checkbox" checked={{allSelected}} {{action (toggle "allSelected" this)}}>
孩子们:<input type="checkbox" checked={{allSelected}}>
解决方案
以这种风格使用时,{{action}}
助手不能阻止点击动作冒泡(通过提供函数关闭)。我能想到的几种方法可以在旧的 ember 版本中解决这个问题。(使用 ember octane,您只需使用{{on}}
不受相同限制的助手)。
在组件的支持 JS 中的操作中执行切换并传递
{{action "toggle"}}
以停止事件的冒泡。用 . 拆分您的输入
{{if}}
。
{{if this.allSelected}}
<input checked>
{{else}}
<input>
{{/if}}
旧的有点错误的答案:
我不是 100% 确定这里发生了什么(这可能与浏览器双重应用您的点击有关)。我认为切换到更新的 ember 操作处理语法可能会解决此问题。
<input type="checkbox" checked={{this.allSelected}} {{on "click" (toggle "allSelected" this)}}>
或者在旧版本的 ember 上(之前{{on}}
介绍过)
<input type="checkbox" checked={{this.allSelected}} {{action (toggle "allSelected" this) on="click"}}>
如果这不起作用,您可能需要尝试内置输入组件,因为它可以消除事件的一些粗糙边缘。
推荐阅读
- javascript - 未捕获的 ReferenceError:未定义 url -JavaScript 错误
- java - 如何在 spring-servlet.xml 中配置 jackson object-mapper 以进行@RequestBody 转换?
- io - 关闭时是否将多余的数据写入文件?
- docker - 需要有关 nginx 反向代理(和 jenkins ?)配置的帮助
- c# - 如果 Ole.DB 提供程序在系统上可用,为什么 OleDbConnection.Open() 会抛出无法识别的数据库格式
- r - 在 R 中用 dims 编码 NLS 时出现问题
- java - 我无法在 pdf 中嵌入颜色空间以创建 Pdf/A
- reactjs - 覆盖 MuiContainer 类时如何摆脱 Typescript 类型错误?
- python - while 循环不起作用,等待输入
- javascript - 如何使用 Selenium WebDriver 从任何网站获取地址标签或 JSON 值