我正在創建一個簡單的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 )的指南。 –