我正在创建一个简单的Todo应用程序,因为我在探索EmberJS v2.14。我想建立手动内嵌编辑功能 - 用户将双击待办事项行项目文本跨度,打开输入字段。然后,用户将编辑待办事项,将双向绑定到后台对象。然后当焦点丢失时,应用程序将重新关闭输入字段到新编辑的文本。Ember:在焦点输出字段上调用输入字段与参数
以下代码片段位于{{each}}
区块帮助程序内,它与差不多有效。
{{#unless todo.isOpenForEdit}}
<span {{action 'openForEditing' todo on='doubleClick'}}>{{todo.text}}</span>
{{else}}
{{input type="text" value=todo.text action='closeForEditing' on='focus-out'}}
{{/unless}}
工作件
- 我可以双击进入编辑模式(即
openForEditing()
正确调用与写入参数。) - 操作处理程序
closeForEditing()
正确调用当焦点从输入字段丢失。
件不工作
- 我不知道如何待办事项对象模型作为参数传递,所以 该
closeForEditing()
处理程序可以做设定isOpenForEdit
的适当的工作回假。
-
Q)我如何通过一个参数一个行动处理器与输入辅助工作时?
Q)有没有不同的方法可以达到我的目标?
谢谢,我很难找到我需要的文档。 –
@MichaelR这种类型的动作被称为闭包动作,并在[本节]中进行了介绍(https://guides.emberjs.com/v2.14.0/components/triggering-changes-with-actions/#toc_passing-arguments )的指南。 –