0
此問題與this one here有關,其中我使用成分配方關係來表示項目和項目組之間的關係。在成功插入項目和組後,其中每個組中的一個字段是項目的ID的數組,問題是我如何在關聯的HTML頁面上列出這些項目和組。流星:如何使用html頁面上的遊標數組顯示列表
我試過下面的JS代碼;物品它返回遊標的直接光標,團體它(對於每組多個項目)返回一個數組(由於於存在多個組)的數組:
Recipes = new Mongo.Collection("recipes");
Ingredients = new Mongo.Collection("ingredients");
Template.body.helpers({
ingredients: function() {
// return
var returnedingredients = Ingredients.find({}, {
sort: {
createdAt: -1
}
});
// console.log(returnedingredients);
return returnedingredients;
},
recipes: function() {
//Show newest recipes at the top
var itemIds = Recipes.find({}, {
sort: {
createdAt: -1
},
// _id: 1
}).map(function(i) {
return i.itemIds;
});
// return
var returnedrecipes = _.map(itemIds, function(oneRecipe) {
var ingredientsOfRecipe = _.map(oneRecipe, function(itemId) {
return Ingredients.find({}, {
_Id: itemId
});
});
// console.log(ingredientsOfRecipe);
return ingredientsOfRecipe;
});
console.log(returnedrecipes);
return returnedrecipes;
},
});
關聯的HTML代碼。 身體部位:
<h2>recipes</h2>
<ul>
{{#each recipes}} {{> recipe}} {{/each}}
</ul>
<h2>List of ingredients</h2>
<ul>
{{#each ingredients}} {{> ingredient}} {{/each}}
</ul>
模板部分:
<template name="ingredient">
<li class="{{#if checked}}checked{{/if}}">
<button class="delete">×</button>
<input type="checkbox" checked="{{checked}}" class="toggle-checked" />
<span class="text">{{ingredientName}}</span>
</li>
</template>
<template name="recipe">
<li class="{{#if checked}}checked{{/if}}">
<button class="delete">×</button>
<input type="checkbox" checked="{{checked}}" class="toggle-checked" />
<li>
<ul>
{{#each this}}
<li>{{ingredientName}}</li>
{{/each}}
</ul>
</li>
</li>
</template>
頁面正確顯示的項目/成分對自己的名單。但它沒有顯示組/配方列表(或者更確切地說,是爲了顯示每個配方的配料列表)。兩個問題:1.爲了在頁面上顯示食譜,從JS代碼返回遊標數組的數組是否是要走的路? 2.我在處理遊標數組時遇到了什麼錯誤?