2013-09-25 27 views
1

用例是我在{{outlet}}中顯示了一個索引列表,並且我希望顯示每個項目的詳細視圖在同一家店裏,由'申請'擁有。 這是沒有問題做:Ember.js:如何將子路由的視圖渲染到應用程序中並導航回父路由

renderTemplate: (controller, model)-> 
this.render('show', { 
    into: 'application' 
}); 

然而問題是,返回{{#linkTo 'index'}}Index{{/linkTo}}索引頁面時,則索引視圖將不再呈現。

控制檯引發錯誤: Uncaught TypeError: Cannot call method 'connectOutlet' of undefined

下面是一個小提琴再現問題: http://jsfiddle.net/genkilabs/spAbn/3/

什麼是有我的所有孩子的正確方法視圖顯示在應用程序的主要出路?

回答

1

您需要做的只是將show路由轉換爲與index路由平行而不是嵌套路由。

App.Router.map -> 
    @resource 'index', path: '/' 
    @resource 'show', path: ':person_id' 

的問題是本來嵌套在show路線index路線內。 renderTemplate調用覆蓋了show模板的原始index模板,但Ember仍希望index模板出現在層次結構中。

JSFiddle Example

+1

感謝您回答這個問題。我的目標是在對象類型的範圍內保持展示和其他孩子的觀點。即。如果我有一個菜單項「動物」,那麼我想要「貓」和「狗」的內部頁面,但我仍然希望動物選項卡保持'活躍'類等。事實證明,我找到了更好的解決方案之一其他答案:http://stackoverflow.com/a/16346204/484689 – genkilabs