【问题标题】:Meteor Iron Router passing arraylist value as parameterMeteor Iron Router 传递 arraylist 值作为参数
【发布时间】:2015-11-08 04:39:19
【问题描述】:

我是流星新手,一直在尝试将数组列表中的值传递给 href 路径元素。

我有一个模板

<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;
}

它将以字符串列表的形式返回一些数据。例如,当打印到控制台时,我会得到 ​​p>

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

【问题讨论】:

  • 不清楚您要在路由器中做什么。路由器代码中的注释表明您试图避免使用查询参数。同时您的路由器正在尝试查找与a,b,c 无关的orgname: "XXXX"。 a,b,c 总是三元组还是可以是元组或四元组或任何数字?您是否考虑过在模板助手中设置一个会话变量(或反应变量)并从您的路由中引用它。
  • 感谢您的评论。基本上我在模板中使用#each 成功创建了href。我现在想将 href 的值传递给 IR,以便我可以使用该值来查询我的集合。 PS:IR中的评论有误导性,删除它。

标签: meteor router query-parameters


【解决方案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
    };
  }
});

【讨论】:

  • 谢谢,如何创建href? {{this}}
  • 示例:{{pathFor 'article' _id=this._id }} 来自 stackoverflow.com/questions/18424800/…
  • 谢谢,我将以下 &lt;a href="{{pathFor 'listingbycompanyL1' _id=this._id }}"&gt; 和 IR 更新为 path:'/listingL1/:_id' 但这似乎不起作用,我的链接不可点击,这意味着路径没有正确创建。我还尝试了以下&lt;a href="{{pathFor 'listingbycompanyL1' query='company=mycompanynamehere'}}"&gt; 注意 mycompanynamehere 是我要动态发送的值,在 IR 中我可以看到这个参数在 IR console.log(this.params.query.company); 中通过缺少的部分..我如何发送 {{this} 的值} 进入 mycompanynamehere,.
  • 另外请注意,最初发送的数据没有 id,它是一个字符串列表,我在模板中迭代,我想将该字符串值进一步发送到 IR,以便我可以搜索我的收藏。非常感谢您的帮助,我还是个新手
  • 我很抱歉,自从早期的堆栈溢出问题以来,我显然改变了。 Here's the current documentation on pathFor
猜你喜欢
  • 2014-05-30
  • 2015-07-19
  • 2013-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多