流星将参数传递给助手以基于该参数填充页面
Meteor. Passing an argument to a helper to populate a page based on the argument
我正试图根据通过地址栏发送的参数来填充流星模板。
我正在使用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");
}
});
然后在每种水果前按颜色
但是现在我正在"动态地"获取数据,我不知道如何获取从Route返回给助手的数据。
也许我这样做完全错了。如果有更好的方法可以将参数传递给助手并从那里进行db.find,那可能是最好的,但我发现很难找到最好的方法,我非常感谢
由于我在这个问题上找到了一些代码,我找到了答案Meteor Iron路由器:在路由之间传递数据
基本上,我不需要定义一个单独的助手,我可以像这样传递与助手中相同的数据。
Router.route('fruit/:_colour', function () {
this.render('fruitTemplate', {
data: {
fruitByColour: function () {
return FruitDb.find({colour: this.params._colour});
}
}
});
});
相关文章:
- 如何使全局变量仅特定于该文件
- 如何向onClick事件处理程序传递一个接受参数的函数,并且仍然将该函数绑定到组件's”;这个“;上下文
- 如果元素在容器外部,是否可以相对于容器以绝对定位来定位该元素
- AngularJS-点击对象,访问它's ID&以该ID作为参数激发函数
- 点击复选框并显示“;“新闻”;仅适用于该类型的类别
- 如何在变量中存储多个模式参数并在 JavaScript 中打印该变量的值
- 如何使用 jquery 检查该值是否存在于带有标签的 select2 下拉列表中:true
- JavaScript 函数,用于使用该参数创建 URL
- “add”函数适用于不同的链接/参数组合
- 如何自定义数据::confirm弹出窗口以提示输入,该输入将附加到请求参数中
- 如何创建一个链接,该链接使用相应的参数打开到其他链接
- 流星将参数传递给助手以基于该参数填充页面
- 如何仅相对于该框架而不是整个窗口执行javascript
- 可以't传递匿名函数的参数,该参数作为setTimeout函数传递
- 确定正在使用的浏览器,然后为依赖于该浏览器的类设置样式
- 在jQuery选择器数组中单击1项将应用于该数组中的所有元素
- CSS—根据字体大小选择元素,并动态地将样式应用于该文本
- 向页面的当前URL添加一个参数,该参数在另一个Javascript函数中解析,以在页面上定位
- 如何从@Input参数中访问parent参数,该参数在子类中是parent
- 当元素被单击时,用另一个类找到相对于该元素最近的元素并切换它