如何在模板中获取查询参数?

时间:2016-02-02 22:49:34

标签: meteor iron-router meteor-blaze

我正在使用Meteor 1.2.1 +铁路由器并启用了autopublish

我想根据帮助器查询参数

返回的集合值构造一个锚点href。

是否可以在模板标签中执行此操作,例如应该从网址读取query_param1吗?

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

上面,集合返回{{name}},并将查询参数附加到href以创建class C final { struct B { virtual bool empty() const noexcept = 0; }; template<class T, class A> struct D: public B { // several constructors aimed to // correctly initialize the underlying container bool empty() const noexcept override { return v.empty(); } private: std::vector<T, A> v; }; // ... public: //... bool operator==(const C &other) const noexcept { // ?? // would like to compare the underlying // container of other.b with the one // of this->b } private: // initialized somehow B *b; }; 的完整超链接。

2 个答案:

答案 0 :(得分:1)

您可以通过帮助程序访问IronRouter参数,例如:

{{1}}

答案 1 :(得分:1)

您可以使用@ Stephen的建议。

在你的模板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>

在你的模板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;
    }
});