【问题标题】:How to pass a parameter to pathFor in Handlebars for Iron-Router with Meteorite?如何将参数传递给带有 Meteorite 的 Iron-Router 的把手中的 pathFor?
【发布时间】:2013-08-27 19:14:48
【问题描述】:

我有一个带参数的简单路线:

this.route('article', {
        path: '/article/:_id',
        data: function() { return Articles.findOne(this.params._id); }
    });

我想在这里使用带有 _id 的 pathFor 车把助手:

{{#each articles}}
<li><a href="{{pathFor 'article' _id}}">{{title}}</a></li>
{{/each}}

这对于将 _id 标记传递到 url 不起作用...

【问题讨论】:

    标签: meteor meteorite handlebars.js iron-router


    【解决方案1】:
    <li><a href="{{pathFor 'article' _id=this._id }}">{{title}}</a></li>
    

    这就是你传递参数的方式

    【讨论】:

    【解决方案2】:

    在您的示例中,您不需要传递任何参数。 pathFor 助手将自动使用当前数据上下文并从该对象中获取属性。由于您有一个{{#each articles}} 迭代器,pathFor 的当前数据上下文将设置为列表中的当前项目(一篇文章)。 article 对象上应该有一个_id 属性,所以路径助手才可以工作。如果您想更改数据上下文,可以将另一个对象作为第一个参数传递给 pathFor 助手,或者您可以使用 {{#with anotherDataContextObject}} 块助手。

    在 v0.5.4 中,您还可以使用 Handlebars 哈希键值来替换上下文对象。在 dev 分支中,这不再是真的。如果您在 Handlebars 帮助程序中提供键值对作为参数,这些将被附加到查询字符串中。为了说明这里是一个在 dev 分支中变化的例子:

    {{pathFor 'article' article q=some+query}}
    //=> "/article/abcd/?q=some+query
    

    或者

    {{#with article}}
    {{pathFor 'article' q=some+query}}
    //=> "/article/abcd/?q=some+query
    {{/with}}
    

    【讨论】:

    • 在{{pathFor 'article' article q=some+query}},第二个article可以叫什么吗?在哪里可以找到文档?
    【解决方案3】:

    在 Meteor 1.3.X 中,我使用 pathFor 助手的选项。

    {{pathFor route='' data= query='' hash=''}}

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-15
      • 2014-05-30
      • 2016-03-25
      • 2013-08-14
      • 2015-09-21
      • 2020-08-14
      • 1970-01-01
      • 2013-09-25
      相关资源
      最近更新 更多