2016-03-31 4 views
0

Я хочу, чтобы передать из параметров маршрутизатораМетеор: как использовать различные маршруты для того же шаблон

Я пытался:

Router.route('/someURL/:id', { 
    name: 'someTemplate', 
    data: function() { 
     var myData = someCollection.findOne({_id:this.params.id}); 
     myData.someParam = true; 
     return myData; 
    } 
}); 
Router.route('/anotherURL', { 
    name: 'someTemplate', 
    data: function() { 
     return {someParam:false}; 
    } 
}); 

, но он не работает

Эти это моя ошибка: Ошибка: обработчик с именем 'someTemplate' уже существует.

Как я могу его решить.?

Примечание: мне нужна эта «someParam»

+0

Использовать регулярное выражение, которое равно true для обоих выражений? http://stackoverflow.com/questions/27976879/meteors-iron-router-route-multiple-paths-to-one-template-but-still-dry – Akshay

+0

имя - это название маршрута. используйте 'template:" someTemplate ", чтобы задать имя шаблона. – MrE

ответ

2

имя является именем для маршрута не шаблон, который вы хотите использовать. Имена маршрутов являются уникальным идентификатором для каждого маршрута, как и URL-адрес, и могут использоваться для вызова маршрута без использования полного URL-адреса. Вы хотите что-то вроде:

Router.route('/someURL/:id', { 
    name: 'someName', 
    template: 'someTemplate', 
    data: function() { 
     var myData = someCollection.findOne({_id:this.params.id}); 
     myData.someParam = true;  
     return myData; 
    } 
}); 
Router.route('/anotherURL', { 
    name: 'someOtherName', 
    template: 'someTemplate', 
    data: function() { 
     return {someParam:false}; 
    } 
});