(注:我使用的灰燼版本1.0.0-rc.3)如何使用視圖捕捉{{linkTo}}上的「點擊」?
我試圖趕上使用視圖{{linkTo}}
的「點擊」,這樣我可以做更多的東西(基本上滾動側邊欄中的用戶列表),除了僅加載新模板。我是比較新的這個(!不過話說閱讀文檔),我想下面就只是工作:
「用戶」 模板:
{{#each user in users}}
{{#view App.ClickView}}
{{#linkTo user user}}{{ user.name }}{{/linkTo}}
{{/view}}
{{/each}}
視圖代碼:
App.ClickView = Ember.View.extend({
click: function(evt) {
// do stuff
}
});
和背景下,佈局模板:
<div id='sidebar'>
{{#each user in users}}
{{#linkTo user user}}{{ user.name }}{{/linkTo}}
{{/each}}
</div>
<div id='main'>
{{ outlet }}
</div>
回頭參照用戶模板,可以看到每個{{linkTo}}
都包含在視圖中。我期待點擊{{linkTo}},然後將其吸引到視圖中(App.ClickView
)。不幸的是,事實並非如此。看起來像點擊是不是冒泡到視圖,當它發生在{{linkTo}}
......我該怎麼辦?
注#1: 如果我更換{{linkTo}}
(!爲div#主只有我不打算替換DIV#側邊欄的)與<a>
元素,它的工作原理,並點擊被視線所吸引。但是,我不太確定我想要走這條路線(我不得不復制{{linkTo}}
的功能!)。我認爲應該有更好的方法來做到這一點。在那兒?
注意2: *請注意,我也知道,我可以把我的打算「做的東西」的代碼在UserRoute的renderTemplate(),但這個問題是,效果會發生的該路線的每個鏈接(包括側欄中的鏈接 - 這不是我想要的)。我想滾動到只觸發特定的{{linkTo}}
s - 特別是在div#main中的{{linkTo}}
s。
我假設你說重新發送到控制器,因爲你需要將它發送到路由器?(而不是因爲你建議有控制器處理動作,在這種情況下,它不會冒泡到路由器) 另外:特定於我的用例,你知道是否有任何方法可以找到給定模型的路由嗎?例如,我不會用''元素替換側邊欄中的'linkTo's(這就是我使用'{{action ...}}'所必須做的事情)。我想找到正確的鏈接使用_something_像'$('a [href =「model.route」]')'。 –
我同意盧克在這裏。 Linkto用於轉換設置上下文。事件不會按照您希望的方式處理。另一方面,我不明白爲什麼盧克提供的答案不好。 –
@ Jeffrey'jf'Lim是的,請發送給控制者,因爲您的觀點不應該關注誰最終會處理該行爲。你的實現會讓它冒泡到你要處理它的路由器。我沒有上下文來回答你的其他問題。也許它值得自己的SO問題? –