流星。将参数传递给助手以根据参数填充页面
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");
}
});
然后通过每个 fruitByColour 进行遍历
但现在我"dynamically" 正在获取该数据,我不确定如何获取从路由返回到助手的数据。
也许我做的完全错了。如果有更好的方法将参数传递给助手并从那里执行 db.find 可能是最好的,但我发现很难找到最好的方法,非常感谢任何帮助
感谢我在这个问题上找到的一些代码,我找到了答案
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});
}
}
});
});
我正在尝试根据我通过地址栏发送的参数填充流星模板。
我正在使用 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 进行遍历
但现在我"dynamically" 正在获取该数据,我不确定如何获取从路由返回到助手的数据。
也许我做的完全错了。如果有更好的方法将参数传递给助手并从那里执行 db.find 可能是最好的,但我发现很难找到最好的方法,非常感谢任何帮助
感谢我在这个问题上找到的一些代码,我找到了答案 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});
}
}
});
});