具有多个参数的铁路由器嵌套路由

luk*_*ups 3 routing meteor iron-router

我有两个型号:sitesarticles.每个站点可以有多个文章.我想在这条路线中查看这篇文章:/siteName/articleFriendlyTitleUrl.目前我有帮助方法来制作这样友好的网址:

getFriendlyUrl = function(urlString){
  urlString = urlString.toLowerCase();
  urlString = str.replace(/[^a-z0-9\s]/gi, '').replace(/[_\s]/g, '-');
  return urlString;
}
Run Code Online (Sandbox Code Playgroud)

我的router.js档案:

this.route('showArticle', {
  path: '/article/:title'),
  layoutTemplate: 'artLayout',
  data: function(){
  viewData = {
    title: Articles.findOne({title: this.params.title}),
    site:  Sites.findOne({name: this.name})
  }
  return viewData;
});
Run Code Online (Sandbox Code Playgroud)

任何人都知道如何实现这个?我也试过这个路径:

/:siteName/:articleId
Run Code Online (Sandbox Code Playgroud)

但没有成功 - 任何建议?

Kub*_*bek 5

我建议在文章文档中保存slug.当用户添加/编辑文章时,App可以使用Underscore.String.slugify函数(https://github.com/epeli/underscore.string)从标题生成slug .

具有多个参数的路线有效:

this.route('showArticle', {
  path: '/:siteName/:articleSlug'),
  ...
  data: function(){

     viewData = {
       title: Articles.findOne({slug: this.params.articleSlug}).title,
       site:  Sites.findOne({name: this.params.siteName})
     }
     return viewData;
  }
});
Run Code Online (Sandbox Code Playgroud)