2013-05-15 50 views
1

(注:我使用的灰燼版本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。

回答

1

我會建議使用錨(<一個>)與{{action ... target="view"}}標籤在它代替linkTo,應用條件邏輯視圖,然後如果合適的話,再發送到控制器(this.get('controller').send(actionName),讓它泡到路由器,並做一個transitionTo在路由器事件處理程序

相關問題