【问题标题】:Meteor 1.0 - Passing a parameter into pathFor using iron:routerMeteor 1.0 - 使用 iron:router 将参数传递到 pathFor
【发布时间】:2015-02-11 18:10:00
【问题描述】:

我看过一些关于如何使用 iron:router 作为第三个参数传递参数的答案,例如:href="{{pathFor 'article' _id=this._id }}"

我想做的是传递一个参数作为 second 变量('article' 在上面的示例中)。

我有一个posts 集合,其中包含一个title、一个body 和一个type。我正在做的项目中有三种类型的文章,每种类型都需要路由到不同的模板,因为格式差异很大。

我想做的是根据类型路由到特定的 url。捕获我的意图但不起作用的示例如下:

<a href="{{pathFor '{{type}}'}}">link</a>

“类型”之一是“查询”,路由如下所示:

 @route "inquiryPost",
    path: "inquiry/:_id"
    data: ->
      Posts.findOne @params._id
    waitOn: ->
      [
        Meteor.subscribe "posts"
      ]

我尝试使用帮助器将值传递给pathFor,但这也不起作用:

path: ->
    type = @type
    "pathFor '#{type}'"

...前端有这个:

<a href="{{path}}">link</a>

我可以想到一些变通方法,但在我看来应该有一种更简单的方法来传递参数......

那么,是否可以将参数传递到 pathFor 的第二个值中?

【问题讨论】:

    标签: meteor iron-router


    【解决方案1】:

    试试

       <template name="example">
        <a href="{{pathFor type}}">link</a>
       </template>
    

    其中 type 是助手

    Template.example.examples({
     type:function(){
      return type;
     }
    })
    

    你也可以试试这个例子

    <a href="/myRoute/{{myHelper}}/{{this._id}}">link with many parameters</a>
    

    在这里你可以访问例如路由

    例如/myRoute/type/rewr8671qew

    【讨论】:

    • 解决了!谢谢你。我最终使用了&lt;a href="{{pathFor type}}"&gt;,它就像一个魅力。
    • @samcorcos 真棒=D!
    • 您能否为此发布完整的工作示例 - 我正在尝试按照您的回答,但您没有展示如何设置“type”的实际值!
    • hi andy type 将是一个简单的字符串,代表您的路线名称,而且我忘了补充一点,如果您想添加参数,路线应该看起来像这样 {{pathFor 'someRouteName' id=this._id username=currentUser.username}} 看起来像这样浏览器http://localhost:300/someRouteName/115q4rwqwwrd/myCoolUserName
    • 感谢您的回复 - 我又试了一次,这次成功了,但我不完全确定我的做法与之前有什么不同!我实际上并没有使用模板助手作为每个页面的相同“标题”模板,因此我从路由器渲染模板并传入数据对象来设置值。如果有人阅读此评论并想举例说明我的意思,请引用我的名字,我会尽快回复您
    猜你喜欢
    • 1970-01-01
    • 2014-12-25
    • 1970-01-01
    • 2015-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-21
    • 1970-01-01
    相关资源
    最近更新 更多