如何在两条不同的路线上重复使用余烬路线?

时间:2017-09-26 21:11:09

标签: ember.js

我的路由器有路径设置列出壁纸。索引显示壁纸列表。还有一个分类的壁纸列表。最后,还有一个用于查看特定壁纸的页面。

路径设置如下:

  1. /wallpapers/壁纸列表
  2. /wallpapers/:category_id/特定类别的壁纸列表
  3. /wallpapers/:category_id/:wallpaper_id/单一壁纸页面<​​/ li>

    点击后,1和2中的条目显示为3。

    现在我希望3成为模态,它会在后台弹出前一个路线。我可以使用1或2作为父级来使用它。但是如果我想为两者做这件事,我需要完全复制3的路由,控制器,模板和模型,因为路由器映射会自动在特定目录中查找路由/模板/模型/控制器。对两个地方使用现有控制器的任何尝试都会导致它仅适用于一条路线,或者抛出一条错误,说明找不到该模型。

    如何在1和2中使用相同的路径/控制器/模板/模型组合?

    Router.map(function() {
        this.route('wallpapers', function() {
            this.route('index', { path: '/' }, function() {                         // All wallpapers
                this.route('wallpaper', { path: ':category_id/:wallpaper_id' })     // Modal dialog
            })
            this.route('category', { path: ':category_id' }, function() {           // Categorized wallpapers
                this.route('wallpaper', { path: ':wallpaper_id' })                  // Modal dialog
            })
        })
    })
    
    1. 请注意,出于保留现有链接的原因,我倾向于以这种方式保留路径。
    2. 请注意,可以从路径1和路径2到达模态对话框,但模式本身具有相同的路径。刷新页面和丢失状态可能导致父级切换。这可以。我更喜欢将分类列表(2)作为默认父级。

0 个答案:

没有答案