2016-02-02 3 views
1

Я использую Метеор 1.2.1 + железо-маршрутизатор с autopublish включенКак получить параметры запроса в шаблоне?

Я хотел бы построить якорь HREF на основе значений сбора возвращаемых помощника и запроса Params

Можно ли сделать это в теге шаблона, например query_param1 следует читать по URL-адресу?

<template name="dataEntry"> 
    {{#each data}} 
    <li> 
     <a href="/listing?name={{name}}&color=<query_param1>"> 
     Data name 
     </a> 
    </li> 
    {{/each}} 
</template> 

Выше {{name}} возвращается параметры сбора и запроса добавляются к тому, чтобы создать полную гиперссылку на href.

+0

Возможный дубликат [Как использовать параметры URL с помощью Meteorjs] (http://stackoverflow.com/questions/22120489/how-to-use-url-parameters-using-meteorjs) не –

+0

действительно - позвольте мне перефразировать вопрос – sami

+0

Я думаю, что на клиенте нет парсера-анализатора, если это то, что вы имели в виду. Вам нужно будет самостоятельно разобрать поисковый запрос URL, но для этого есть несколько фрагментов javascript. Когда у вас есть значение, вы просто возвращаете его из помощника и используете помощника в своем шаблоне. –

ответ

1

Вы можете использовать @ предложение Стефана, как это.

В вашем шаблоне HTML,

 <template name="dataEntry"> 
     {{#each data}} 
      <li> 
       <a href="/listing?{{queryParams}}"> 
        Data name 
       </a> 
      </li> 
     {{/each}} 
    </template> 

В шаблоне JS,

Template.dataEntry.helpers({ 
    "queryParams": function() { 
     var name = ""; 
     //get name from collection here like... 
     //name = Meteor.user().profile.firstName; 
     var color = Router.current().params.color; 
     return "name=" + name + "&color=" + color; 
    } 
}); 

Или вы можете использовать два отдельных помощников

В вашем шаблоне HTML,

 <template name="dataEntry"> 
     {{#each data}} 
      <li> 
       <a href="/listing?name={{name}}&color={{color}}"> 
        Data name 
       </a> 
      </li> 
     {{/each}} 
    </template> 

В вашем т emplate JS,

Template.dataEntry.helpers({ 
    "name": function() { 
     var name = ""; 
     //get name from collection here like... 
     //name = Meteor.user().profile.firstName; 
     return name; 
    }, 
    "color": function() { 
     return Router.current().params.color; 
    } 
}); 
+1

спасибо - это было - 2 отдельных помощника, один для коллекции, другой - возвращать параметры запроса - и я могу связать их в шаблоне – sami

1

Вы можете получить доступ к IronRouter параметров через помощника, например .:

Router.current().params.query_param1 
+0

Да, я знаю об этом - гиперссылка должна быть составлена ​​из значений атрибутов из параметров маршрута и запроса в текущем URL-адресе, и – sami