【问题标题】:Meteor. Passing an argument to a helper to populate a page based on the argument流星。将参数传递给帮助程序以根据参数填充页面
【发布时间】:2015-03-01 09:24:39
【问题描述】:

我正在尝试根据我通过地址栏发送的参数填充流星模板。

我正在使用 Iron 路由器,当我查看它的文档时,我发现了这个示例

Router.route('/post/:_id', function () {
  this.render('Post', {
    data: function () {
      return Posts.findOne({_id: this.params._id});
    }
  });
});

我尝试了类似的方法,但我很难找到我在模板中实际使用该数据属性的方式。以前我使用模板助手在数据库上进行查找,只要它始终使用相同的查找命令,它就可以完美地工作。现在我想根据我通过地址栏传入的内容来自定义该查找,我正在努力做到这一点。

使用上面的 Iron 路由器示例,我尝试了类似的方法

Router.route('fruit/:_colour', function () {
  this.render('fruitTemplate', {
    data: function () {
      return FruidDb.find({colour: this.params._colour});
    }
  });
});

这就是我卡住的地方。通常要填充我的模板,我会使用如下所示的帮助器

Template.fruitTemplate.helpers({
  fruitByColour: function() {
      return FruidDb.find({colour: "green");
  }
});

然后只遍历每个fruitByColour

但现在我正在“动态”获取该数据,我不确定如何获取从 Route 返回到帮助器的数据。

也许我这样做完全错了。如果有更好的方法将参数传递给助手并从那里执行 db.find 可能是最好的,但我发现很难找到最好的方法,非常感谢任何帮助

【问题讨论】:

    标签: javascript meteor iron-router


    【解决方案1】:

    感谢我在这个问题上找到的一些代码,我找到了答案 Meteor Iron Router : Passing data between routes

    基本上我不需要定义单独的助手,我可以像这样传递与助手中相同的数据。

    Router.route('fruit/:_colour', function () {
      this.render('fruitTemplate', {
        data: {
          fruitByColour: function () {
            return FruitDb.find({colour: this.params._colour});
          }
        }
      });
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多