2014-11-21 63 views
1

我想將操作添加到{{link-to}}幫助程序。 例如,在模式組件中,我使用{{link-to}}來打開一條新路線。當用戶點擊鏈接時,我想通過一個動作關閉模式。鏈接上的執行操作 -

一個可能的解決方案是纏繞在{{link-to}}一個動作:

<button {{action "close"}}> 
    {{#link-to 'register'}}Registreer{{/link-to}} 
</button> 

這是最好的/乾淨的解決方案可能嗎?或者我可以添加一個動作到鏈接到助手?

另一種方法可能是過渡和關閉自定義操作,但這種方法是不是 可用於在組件中使用:

// template.hbs 

<button {{action "link" "register"}}>Registreer</button> 

... 

// template-controller.js 
actions: { 
    link: function(routeName) { 
    this.transitionToRoute(routeName); 
    this.close() 
    } 
} 
+2

的文檔我個人認爲,在這個詞的真正意義上的組件沒有業務做路由相關的東西。它應該與外部世界(它的調用環境)和簡潔的行爲進行交流,然後由調用者在更廣泛的應用環境中轉化爲有意義的東西,無論是路由轉換還是其他任何東西。 – 2014-11-21 16:40:55

+0

如果鏈接到邏輯位於組件的yield部分內,您是否意見會改變? – Hoetmaaiers 2014-11-21 22:09:04

回答

2

你應該做的拆卸操作,如willDestroyElement內關閉模式盒您目前的事件view

通過這樣做,你可以只需{{link-to 'register'}},讓你的view(template-view.js)管理一個模式關閉與否的事實。

結帳willDestroyElement HERE