余烬引擎route.js中的嵌套路由?

时间:2018-10-21 05:06:04

标签: ember.js ember-engines

如何在ember可路由引擎中定义嵌套路由?我无法导航到超过2棵树。喜欢, 例如

All posts
 Post
   Comments
     Comment

我可以访问

localhost:4200 / posts /:postid /

但是当我访问

localhost:4200 / posts /:postid / comments /:commentid

它不呈现评论模板的内容。但这也没有显示任何错误。

1 个答案:

答案 0 :(得分:0)

在您的终端机

$ ember g route posts
$ ember g route posts/post
$ ember g route posts/post/comments
$ ember g route posts/post/comments/comment

在您的router.js中,将内容替换为以下内容

Router.map(function(){
    this.route('posts', function() {
        this.route('post', {path: '/:post_id' }, function() {
            this.route('comments', function() {
                this.route('comment', {path: '/:comment_id'});
            });
        });
    });
});

这是一个解决方案,但是我更喜欢在每个主要路由中定义一个索引子路由,例如ember g route posts/index并将其添加到您的router.js中,例如

this.route('posts', function() {
    this.route('index', {path: '/'});
    this.route('post', {path: '/:post_id'}, function() {
        .....
        .....
    });
});

每次添加索引子路由