而不是使用{ {linkTo}}幫助程序,可以使用{{action}}幫助程序,並指定target=view
(請參閱handling action in view not router)。
要處理更改網址,您可以撥打電話transitionTo
併爲其提供SongsEdit路線以及參數。
模板:
{{#each record in records}}
<div class="record" {{action editForm record on="doubleClick" target="view"}}> ... </div>
...
{{/each}}
觀點:
editForm: function(record){
// need to use the controller to call transitionToRoute
this.get('controller').transitionToRoute("songsEdit", record);
}
注意,你實際上並不需要處理在針對這一動作;在控制器中處理這個也很有意義。
或者,如果您想要使用內置的doubleClick
處理程序來處理它,則無需在模板中指定任何內容,並且只需確保您有權訪問要傳遞的單個記錄到transitionTo
。
它可能看起來像:
doubleClick: function(e) {
record = this.get('controller.content') // or however you're wrapping the underlying record
this.get('controller').transitionToRoute('editRoute', record);
}
您的路線當然將負責顯示實際編輯表單。
我使用了後一種技術,並做了訣竅:)一個跟進問題:我的路線被命名爲'edit_route'而不是'editRoute'。我相信我遵循了慣例......是我應該使用的低駝案? – onezeno