2012-09-11 57 views
1

我有此路线部分/articles/。我想在这里创建子路由,如//list/。这是我如何尝试:我应该如何正确使用Ember.js嵌套路由?

articles: Ember.Route.extend({ 
    route: '/admin/articles', 
    index: Ember.Route.extend({ 
     route: '/', 
     connectOutlets: function (router, context) { 
      "use strict"; 
      router.get('applicationController').connectOutlet('toolbar', 'articlesToolbar'); 
      router.get('applicationController').connectOutlet('main', 'articles'); 
     } 
    }), 
    list: Ember.Route.extend({ 
     route: '/list/', 
     connectOutlets: function (router, context) { 
      "use strict"; 
      router.get('applicationController').connectOutlet('toolbar', 'articlesToolbar'); 
      router.get('applicationController').connectOutlet('main', 'articles'); 
     } 
    }), 
    doLogout: function(router, context) { 
     "use strict"; 
     router.transitionTo('login', context); 
    } 
}), 

我一定是做错了,因为它不会转换到文章路线。这是我的路由日志:

STATEMANAGER: Sending event 'doSidebar' to state root. 
STATEMANAGER: Entering null 
STATEMANAGER: Entering root 
STATEMANAGER: Entering root.articles 
STATEMANAGER: Sending event 'doSidebar' to state root. 
STATEMANAGER: Entering null 
STATEMANAGER: Entering root 
STATEMANAGER: Entering root.media 

articles网址未注册的历史 - 如果我点击回来,我到以前的状态,articles前的一个。

我在做什么错?

回答

4

您无法路由到非叶状态,因此您无法过渡到“文章”。
要么添加initialState: 'index'到您的文章路线或更改您的代码转换到'articles.index'

articles: Ember.Route.extend({ 
    route: '/admin/articles', 
    initialState: 'index', 
    index: Ember.Route.extend({ 
    // 
+0

它是InitialState。我知道叶子规则,但不是关于initialState。谢谢! –

0

您没有为/articles定义的路线。您需要将route: '/admin/articles'更改为route: '/articles'

+0

在我而言,这是不好的,因为我的根/管理/。 –