Ember:在带参数的 Focus Out 上对输入字段调用操作
Ember: Call Action on Input Field on Focus Out with Argument
我在探索 EmberJS v2.14 时正在创建一个简单的 Todo 应用程序。我想建立一个手动内联编辑功能——用户将双击待办事项行项目文本范围,以打开一个输入字段。然后用户将编辑待办事项,它将双重绑定到支持对象。然后当失去焦点时,应用程序将重新关闭输入字段,返回新编辑的文本。
以下代码片段位于 {{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()
是使用 write 参数正确调用的。)
- 当焦点从输入字段丢失时,操作处理程序
closeForEditing()
被正确调用。
件不工作
- 我不知道如何将 todo 对象模型作为参数传递,所以
closeForEditing()
处理程序可以进行适当的设置工作
isOpenForEdit
返回 false。
--
Q) 如何在使用输入助手时将参数传递给动作处理程序?
Q)我可以采用不同的方法来实现我的目标吗?
您可以通过使用动作助手创建闭包动作来咖喱 todo
{{input type="text" value=todo.text action=(action 'closeForEditing' todo) on='focus-out'}}
您可以通过以下方式传递您的动作:
{{input type="text" value=todo.text focusOut=(action 'closeForEditing' todo)}}
我在探索 EmberJS v2.14 时正在创建一个简单的 Todo 应用程序。我想建立一个手动内联编辑功能——用户将双击待办事项行项目文本范围,以打开一个输入字段。然后用户将编辑待办事项,它将双重绑定到支持对象。然后当失去焦点时,应用程序将重新关闭输入字段,返回新编辑的文本。
以下代码片段位于 {{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()
是使用 write 参数正确调用的。) - 当焦点从输入字段丢失时,操作处理程序
closeForEditing()
被正确调用。
件不工作
- 我不知道如何将 todo 对象模型作为参数传递,所以
closeForEditing()
处理程序可以进行适当的设置工作isOpenForEdit
返回 false。
--
Q) 如何在使用输入助手时将参数传递给动作处理程序?
Q)我可以采用不同的方法来实现我的目标吗?
您可以通过使用动作助手创建闭包动作来咖喱 todo
{{input type="text" value=todo.text action=(action 'closeForEditing' todo) on='focus-out'}}
您可以通过以下方式传递您的动作:
{{input type="text" value=todo.text focusOut=(action 'closeForEditing' todo)}}