簡體   English   中英

使Ember路由器從點擊事件過渡到路由

[英]Make Ember router transition to route from a click event

我在應用程序模板({{view "map" locations }}中將控制器地圖呈現為帶有控制器的{{view "map" locations }} 位置是位置模型的數組。

索引路由中位置數據已加載並在應用程序控制器上設置,然后傳遞到地圖視圖。 發生這種情況是因為其他路線可以為位置設置其他內容,並因此更改地圖上的標記。

地圖視圖中,設置了傳單地圖,並從位置創建了標記。 我希望每個標記都可以單擊,因此應用程序過渡到詳細描述“被單擊”位置的路線。 因此,當我手邊的位置模型像

mapMarker.on('click', function(ev) {
  // Do transition to 'location' with model location
});

我希望將路由內容保留在路由器 / 路由中 在模板中,我將使用鏈接幫助器,但是如何從視圖中定義的click事件過渡? 我嘗試使用sendAction,但是似乎在這里不起作用,因為視圖是在其作用域內呈現的,因此該動作不會冒泡到應用程序路由 有任何想法嗎?

為了使單擊事件冒泡到達路由,您必須將其發送到當前控制器。

this.get('controller').send('someEvent')

僅執行send()會使操作僅出現在父視圖中。

現在,如果您要在模板中使用action幫助器,在這種情況下,它將直接進入控制器。 如果控制器不執行該操作,它將冒泡到達該路線。

請參閱http://emberjs.com/guides/templates/actions/#toc_action-bubbling

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM