Маршрутизатор Meteor Iron Router передает значение массива в качестве параметра

Я новичок в метеоре и пытаюсь передать значение из массива в элемент href pathfor.

у меня есть шаблон

<template name="Listing">
  {{#each data}}
    <a href="{{pathFor 'listingbycompanyL1' this}}">{{this}}</a><br/>
  {{/each}}
  <a href="javascript:history.back()">Back</a>
</template>

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

'data': function(){
  var distinctOrgListing = _.uniq(MyCustomCollection.find({}, {sort: {orgName: 1}, fields: {orgName: true}}).fetch().map(function(x) {return x.orgName;}), true);
  console.log("Listing.helpers : distinct listings :"  +distinctOrgListing)
  return distinctOrgListing;
}

который вернет мне некоторые данные в виде списка строк. Например, при выводе на консоль я получу

Listing.helpers : distinct listings : a,b,c

я бы хотел

  1. Отправьте значение, которое я получил, в Iron Router в качестве параметра, чтобы я мог использовать это значение для поиска по коллекции.

Моя конфигурация маршрутизатора для этого выглядит следующим образом:

this.route("listingbycompanyL1",{
  path:"/listingL1",
  layoutTemplate: 'ListingbycompanyL1',
  data: function(){
    var update=MyCustomCollection.find({orgName:"XXXX" }).fetch();
    return {
      update:update
    };
  }
});

Как я могу передать полученные значения (a,b,c) в IR и использовать их для поиска, где XXXX - это a или b или c


person Madhup Narain    schedule 14.08.2015    source источник
comment
Непонятно, что вы пытаетесь сделать в роутере. Комментарий в коде маршрутизатора указывает на то, что вы пытаетесь избежать использования параметра запроса. В то же время ваш маршрутизатор пытается найти orgname: "XXXX", который не имеет ничего общего с a,b,c. Является ли a,b,c всегда тройкой или может быть кортежем, четверкой или любым числом? Вы думали о том, чтобы просто установить переменную сеанса (или реактивную переменную) в помощнике шаблона и ссылаться на нее из своего маршрута.   -  person Michel Floyd    schedule 15.08.2015
comment
Спасибо за комментарий. В основном я успешно создаю hrefs, используя #each в шаблоне. Теперь я хочу передать значение href в IR, чтобы я мог использовать это значение для запроса моей коллекции. PS: Комментарий в ИК вводит в заблуждение, удалил.   -  person Madhup Narain    schedule 15.08.2015


Ответы (1)


Вот простой параметризованный маршрут:

this.route("listingbycompanyL1",{
  // specify the strategy _id as an URL component instead of query parameter
  path:"/listingL1/:a",
  layoutTemplate: 'ListingbycompanyL1',
  data: function(){
    var update=MyCustomCollection.find({orgName: this.params.a }).fetch();
    return {
      update:update
    };
  }
});
person Michel Floyd    schedule 16.08.2015
comment
Спасибо, а как создать href? ‹a href={{pathFor 'listingbycompanyL1' this}}›{{this}}‹/a›‹br/› - person Madhup Narain; 17.08.2015
comment
Пример: {{pathFor 'article' _id=this._id }} из заголовка stackoverflow.com/questions/18424800/ - person Michel Floyd; 17.08.2015
comment
Спасибо, я обновил следующие <a href="{{pathFor 'listingbycompanyL1' _id=this._id }}"> и IR до path:'/listingL1/:_id', но это, похоже, не сработало, мои ссылки не кликались, а это означает, что путь не создавался должным образом. Я также попробовал следующее <a href="{{pathFor 'listingbycompanyL1' query='company=mycompanynamehere'}}"> уведомление о том, что mycompanynamehere - это значение, которое я хочу отправить динамически, в IR я вижу, что этот параметр проходит через IR console.log(this.params.query.company); Недостающая часть.. как я могу отправить значение {{this}} в mycompanynamehere, . - person Madhup Narain; 17.08.2015
comment
Также обратите внимание, что отправляемые данные изначально не имеют идентификатора, это список строк, которые я повторяю в своем шаблоне, и я хочу отправить это строковое значение дальше в IR, чтобы я мог выполнить поиск в своих коллекциях. Большое спасибо за помощь я еще новичок - person Madhup Narain; 17.08.2015
comment
Приношу свои извинения, он, по-видимому, изменился после того предыдущего вопроса о переполнении стека. Вот текущая документация по pathFor - person Michel Floyd; 18.08.2015