Ember:使用参数调用焦点输出上的输入字段上的操作

时间:2017-07-24 17:56:44

标签: javascript ember.js input helper inline-editing

当我探索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}}

工作片

  • 我可以双击进入编辑模式(即使用write参数正确调用openForEditing()。)
  • 当从输入字段中丢失焦点时,正确调用了操作处理程序closeForEditing()

件无法使用

  • 我不知道如何将todo对象模型作为参数传递,所以 closeForEditing()处理程序可以进行适当的设置工作 isOpenForEdit回到假。

-

Q)在使用输入助手时,如何将参数传递给动作处理程序?

Q)我能采取不同的方法来实现目标吗?

2 个答案:

答案 0 :(得分:2)

您可以通过使用操作助手

创建关闭操作来评估todo
{{input type="text" value=todo.text action=(action 'closeForEditing' todo) on='focus-out'}}

答案 1 :(得分:2)

您可以通过以下方式传递您的操作:

 {{input type="text" value=todo.text focusOut=(action 'closeForEditing' todo)}}