Я извлекаю продукты, выполняя следующие действия.Добавление дополнительных ключей к извлеченной коллекции
Template.Bag.helpers({
bagged_products: function() {
var bag = Session.get("shoppingBag") || {};
var bagged_product_ids = Object.keys(bag);
var bagged_products = Products.find({_id: {$in: bagged_product_ids}});
return bagged_products;
}
})
Словарь bag
представляет собой массив {"product_id": quantity}
. В шаблоне я также хочу показать количество каждого продукта. Например, я хотел бы сделать
for each retrieved_product p:
p.qty = qty
return updated_products
Проблема заключается в том, что bagged_products
является LocalCollection.Cursor
типа, и я не знаю, как добавить свойство к этому, так что я могу сделать следующее в шаблоне.
<div class="product-name">{{p_name}}</div>
<div class="product-price">${{price}}</div>
<div class="product-qty">{{my_added_qty}}</div>
Спасибо!
Я думаю, что это лучше, чем инициализация новой временной локальной коллекции, но я не мог понять, как пройти в 'qty' как параметр функции преобразования. Знаете ли вы, возможно ли это? –
Я не уверен, что понимаю. Куда бы вы его взяли, чтобы передать его? Если у вас есть 'function (product, qty)' где бы он получил qty из ?. На данный момент с вашей временной коллекцией вы можете сделать это вместо 'product.qty = bag [product._id]' где 'var bag = Session.get (" shoppingBag ") || {} '(определяется вне преобразования, убедитесь, что вы не определяете это внутри преобразования, чтобы обеспечить его реактивность). – Akshat
@MaximusS обновил ответ, чтобы показать это. – Akshat