2015-05-28 4 views
3

Я довольно смущен об этом вопросе. У меня есть шаблон, который имеет два пути следующим образом:pathFor for iron router meteor

Router.route('/companyDataManagement',{ 
     path:['/companyDataManagement','/companyDataManagement/:_id'], 
     name: 'companyDataManagement', 
     yieldTemplates:{ 
      'companyData':{to:'showCompanyData'}, 
      'companyDetails':{to:'showCompanyDetails'} 
     } 
}); 

Это работает прекрасно. Но как мне использовать pathFor для этого шаблона. <a href="{{pathFor companyDataManagement}}">Click</a> не работает

+0

Вы пытались использовать два отдельных маршрута? Один для каждого пути? –

+0

Как это могло бы решить проблему? –

+0

Как насчет 'Router.route ('/ companyDataManagement /: _ id', {', а затем 'Click'. Итак, по существу сделайте следующее: http://stackoverflow.com/questions/30467393/meteor-with-iron-route-pathfor – Dan

ответ

0

Можете ли вы подтвердить, что компания DataManagement в ссылке - это имя, переданное от помощника, или если вы предполагаете, что это имя названного маршрута? если это последнее, что должно быть заключено в одинарных кавычках, как показано ниже

<a href="{{pathFor 'companyDataManagement'}}">Click</a> 

Если вы хотите, чтобы затем передать: _id в pathFor это исходит из контекста данных, который ссылка находится, если данные контекст не предоставляет идентификатор вам нужно объявить объект передать в шаблон внутри помощника:

Template.yourTemplate.helpers({ 
    myContextHelper: function(){ 
     return {_id:'XXXXXXXXX'} 
    } 
}); 

{{#with myContextHelper}} 
    <a href="{{pathFor 'companyDataManagement'}}">Click</a> 
{{/with}} 

который должен дать вам/companyDataManagement/XXXXXXXXX

вы также можете передать в запросе, хэш и переменные данных, использующие, например, query = "q = 1" o r query = qstring, где qstring - это объект из помощника или поля в объекте myContextHelper.

<a href="{{pathFor 'companyDataManagement' query=qstring }}">Click</a> 

Кроме того, а не строго с вопросом, но, надеюсь, полезно, это выглядит из вашего кода, как вы только имея: идентификатор в качестве дополнительного маршрута части в вашем пути, и что шаблоны сами по себе не требуют an: _id указывается, и в этом случае вы можете просто использовать? чтобы часть дополнительно:

path:'/companyDataManagement/:_id?', 

Вы также можете использовать это для открытия аргумента для маршрута для устранения необходимости указать путь в функции:

Router.route('/companyDataManagement/:_id?',{ 

Надеется, что это помогает! Дайте мне знать, если выше это не сработает, чтобы помочь устранить неполадки, если вы можете добавить немного больше кода, окружающего его.

+0

Очень простое решение, но сделало большое шоу в SO. Спасибо, ребята. Позвольте мне закрыть эту проблему. И да, все дело в том, чтобы сделать «_id» необязательным. –

Смежные вопросы