Router.route('/product/:product_id', {
template: 'productmain',
//data: function() {
// //console.log(this.params.product_id);
// return this.params.product_id;
//}
data: function (){
_id = this.params.product_id;
product = Products.find({pid: _id});
templateData = {
_id: _id,
product: Products.find({pid: _id}),
title: product.title
};
return templateData;
}
})
标题&产品似乎是空的,任何想法?
我无法理解为什么这两个不在我的模板中工作:
<div class="col-md-9 col-xs-9">
<h1>{{ title }}</h1>
</div>
<div class="col-md-9 col-xs-9">
<h1>{{ product.title }}</h1>
</div>
如果我在帮助函数中执行了Products.find({pid:_id}),它可以正常工作,但我需要为这一个产品提供不同的显示,希望有意义。
答案 0 :(得分:2)
只需在product = Products.findOne({pid: _id});
功能中使用data
即可。您在模板中显示单个产品,而不是光标。
您可以按如下方式简化整个过程:
Router.route('/product/:product_id', {
template: 'productmain',
data: function (){
return Products.findOne({pid: this.params.product_id});
}
});
然后在你的html中做:
<div class="col-md-9 col-xs-9">
<h1>{{_id}}{{ title }}</h1>
</div>
基本上data
函数返回一个对象,该对象对于模板变为this
。 this
的所有属性均可使用,不带前缀,即{{this._id}}
可缩短为{{_id}}