如何在插入 Blaze 模板之前修改对象 属性
How to modify object property before insertion into Blaze template
假设我有以下从集合中获取一些对象的 Blaze 模板助手:
PackageInCart: function() {
PackageIds = Carts.findOne({SessionId: SessionID}).Packages;
var PackageObjects = Packages.find({ _id: { $in : PackageIds } } ).fetch();
return PackageObjects;
},
PackageObjects 变量包含具有 'priceperday' 属性 和特定价格值的对象。在 Blaze 模板中,我可以使用以下方法轻松打印此值:
{{#each PackageInCart}}
<div class="price">{{priceperday}}</div>
{{/each}}
但是,如果我想在 Helper 函数打印到模板之前修改 'priceperday' 值怎么办?执行此操作的正确方法是什么?
我想到的一个解决方案是制作一个 for 循环,遍历对象并执行类似 Object.defineProperty() 的操作,将每天的价格 属性 更改为新值。
我想知道是否有更简单或更快捷的方法使用 Blaze 方法来修改用花括号打印的对象 属性。
如果您想使用 blaze 执行此操作,您可以使用另一个助手来执行此操作。
weeklyPrice: function(priceperday){
return priceperday * 7;
}
应该这样称呼
{{#each PackageInCart}}
<div class="price">{{weeklyPrice priceperday}}</div>
{{/each}}
有关空格键辅助参数的更多信息in the docs
假设我有以下从集合中获取一些对象的 Blaze 模板助手:
PackageInCart: function() {
PackageIds = Carts.findOne({SessionId: SessionID}).Packages;
var PackageObjects = Packages.find({ _id: { $in : PackageIds } } ).fetch();
return PackageObjects;
},
PackageObjects 变量包含具有 'priceperday' 属性 和特定价格值的对象。在 Blaze 模板中,我可以使用以下方法轻松打印此值:
{{#each PackageInCart}}
<div class="price">{{priceperday}}</div>
{{/each}}
但是,如果我想在 Helper 函数打印到模板之前修改 'priceperday' 值怎么办?执行此操作的正确方法是什么?
我想到的一个解决方案是制作一个 for 循环,遍历对象并执行类似 Object.defineProperty() 的操作,将每天的价格 属性 更改为新值。
我想知道是否有更简单或更快捷的方法使用 Blaze 方法来修改用花括号打印的对象 属性。
如果您想使用 blaze 执行此操作,您可以使用另一个助手来执行此操作。
weeklyPrice: function(priceperday){
return priceperday * 7;
}
应该这样称呼
{{#each PackageInCart}}
<div class="price">{{weeklyPrice priceperday}}</div>
{{/each}}
有关空格键辅助参数的更多信息in the docs