如何在插入 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