处理Ember路由器中的不变名词

时间:2014-04-29 07:15:18

标签: javascript ember.js

我很好奇其他人如何处理命名Ember路线时,当单数和复数的明显单词相同并且您想要显示所有类型的路线以及单个物品的动态路线。

以文档为例:

App.Router.map(function() {
  this.resource('posts');
  this.resource('post', { path: '/post/:post_id' });
});

大。现在,如果你有系列,而不是帖子和帖子,那该怎么办?您无法再使用此模式。你想要的是/series是所有系列的集合,而/series/:series_id则是每个系列的集合。我想出的只是使用更长的名字:

App.Router.map(function() {
  this.resource('series', { path: '/series' });
  // not nested so that series route isn't activated
  this.resource('series-instance', { path: '/series/:series_id' });
});

这是一个不同的例子,问题不是单词是不变的,而是sigular没有单个单词:

App.Router.map(function() {
  this.resource('staff', { path: '/staff' });
  this.resource('staff-member', { path: '/staff/:staff_id' });
});

有更好的方法可以做到这一点,还是我已经达到目前最好的解决方案了?

1 个答案:

答案 0 :(得分:1)

基本上,您可以为路径值指定任何您喜欢的内容,与语法无关。 我认为你描述的是一种有效的方法,我一直在使用它以及嵌套资源的以下内容。

    App.Router.map(function() {
      this.resource('series', { path: '/series' },function(){
        this.resource('series-instance', { path: '/:series_id' });
      });
    });

通过访问类似/series/4的内容来触发嵌套资源。