2015-08-14 2 views
0

В настоящее время я работаю своим путем, хотя «ваше второе приложение для метеорита» и до сих пор наслаждался им. Все, что я создал, работает, но я не понимаю, почему следующее работает, но код в конце этого не делает.Meteor.js Железная Маршрутизация: _id динамическая путаница маршрута

Шаблон

<template name="list"> 
    <ul> 
    {{#each list}} 
     <li><a href="/list/{{_id}}">{{name}}</a></li> 
    {{/each}} 
    </ul> 
</template> 

<template name="listPage"> 
    <h2>Tasks: {{name}}</h2> 
</template> 

Маршрут

Router.route('/list/:_id', { 
    template: 'listPage', 
    data: function(){ 
    var currentList = this.params._id; 
    return Lists.findOne({_id: currentList}); 
    } 
}); 

Это дает ожидаемые результаты. Тем не менее, мне было любопытно, почему следующее не будет работать, поскольку, похоже, это то же самое. Единственные различия с являются следующие:

  • изменения Router.route ('списки /: _ ID') в Router.route ('списки/randomParm')
  • this.params._id в this.params .randomParm

Шаблон

<template name="list"> 
    <ul> 
    {{#each list}} 
     <li><a href="/list/{{_id}}">{{name}}</a></li> 
    {{/each}} 
    </ul> 
</template> 

<template name="listPage"> 
    <h2>Tasks: {{name}}</h2> 
</template> 

Маршрут

Router.route('/list/randomParm', { 
    template: 'listPage', 
    data: function(){ 
    var currentList = this.params.randomParm; 
    return Lists.findOne({_id: currentList}); 
    } 
}); 

сообщение я получаю:

К сожалению, похоже, что нет ни одного маршрута на стороне клиента или сервера для URL: «http://localhost:3000/list/TGM9dbRRtspyJy7AR

Не существует: _id и randomParm с одинаковыми значениями? Идентификатор элементов списка из HTML-ссылок, которые передаются URL-адресам маршрутизации и используются для вызова монгонга? Я не совсем понимаю, как: _id и randomParm отличаются друг от друга, когда я нажимаю один и тот же URL маршрутизации.

ответ

3

Param shold быть с :

Так что ваш маршрут будет

Router.route('/list/:randomParm', { 

Если пары не являются обязательными, то оставьте ? после

Router.route('/list/:randomParm?', { 
Смежные вопросы