0
我想用一个简单的例子来研究流星,其中一个是水果列表,另一个是根据水果选择:流星:从下拉菜单中选择一个值并返回到另一个下拉列表中的._id
集合(产品列表):
a = new Array();
a.push({color:"orange"});
a.push({color:"red"});
ProductList.insert({ product: "Orange", a });
a = new Array();
a.push({color:"green"});
a.push({color:"red"});
ProductList.insert({ product: "Apple", a });
a = new Array();
a.push({color:"green"});
a.push({color:"yellow"})
ProductList.insert({ product: "Banana", a });
HTML(下拉菜单):
<template name="prodlist">
<select id="category-select">
<option disabled="disabled" selected="selected">Please Select</option>
{{#each prodlist}}
<option value="{{this}}">{{this}}</option>
{{/each}}
</select>
</template>
JS:
Template.prodlist.events({
"change #category-select": function (event, template) {
var category_prod = $(event.currentTarget).val();
//this return the correct element selected in the dropdown(i.e Orange Apple Banana)
console.log("category : " + category_prod);
var productID = ProductList.findOne({product: category_prod })._id
console.log("current ID: " + productID);
}
});
请参阅******上面我的第一个问题
这已被chrisklaussner解决。代码已更新。
而且我想喂发现第二个下拉的._id (saved to productID)
:
HTML:
<template name="colorlist">
<select id="category-select">
<option disabled="disabled" selected="selected">colors</option>
{{#each colorlist}}
<option value="{{this}}">{{this}}</option>
{{/each}}
</select>
</template>
JS:
Template.colorlist.helpers({
colorlist: function() {
const ans = productID.get();
const product = ProductList.findOne({ _id: ans});
if (product) {
return product.a.map(function (doc) {
return doc.color;
});
}
}
});
请参阅******以上是我的第二个问题
这已经解决了。
编辑:这个问题已经解决,原帖中包含了正确的答案
谢谢我对第一个参数只用于._id感到困惑。 – Alex
我已经编辑了关于我发现的问题#2的帖子。你有空时可以看看吗? – Alex
你期望得到什么回报?如果你在一个数组上调用'map'(或者在这种情况下是Mongo游标),你总是会得到一个数组。 – chrisklaussner