我有一个小型列表构建应用程序,几乎是一个待办事项列表。
我有一个名为'lists'的集合
Lists = new Meteor.Collection('lists')
我有一个提交到此集合的表单,并且工作正常。
我的模板在这里:
<template name="list">
{{#with list}}
<ul>
{{#each links}}
<li>PLEASE WORK! >>>> {{title}}</li>
{{/each}}
</ul>
{{/with}}
</template>
我的助手在这里:
Template.list.helpers({
list: function () {
currentListId = Session.get('currentListId')
return Lists.find({
_id : currentListId
});
},
title: function () {
return this.title
}
})
我知道我订阅了数据库,因为当我这样做时:
Lists.find({_id : currentListId}).fetch()
它返回一个看起来像
的对象_id: "mrkpjGW2"
createdAt: 1447401698770
items: Array[3]
__proto__: Object
和内部项目
items: Array[3]
0: Object
createdAt: 1447402263732
owner: "3oyKZKhdPZyDkWnZm"
title: "google.com"
__proto__: Objec
所以我想循环遍历项目并获得标题。
答案 0 :(得分:0)
我没有看到links
帮助者。你迭代链接,但它是否定义?您的示例中也有不同的模板名称 - HTML代码中的list
和JS中的linkList
。
答案 1 :(得分:0)
你有{{#each links}}但链接是什么?我没有看到它在任何地方定义。
当你回来时......
list: function () {
currentListId = Session.get('currentListId')
return Lists.find({
_id : currentListId
});
}
您可以直接对其进行迭代,而不是在顶部进行{{#with list}},然后将其取出并使用下面的{{#each list}}。
<template name="list">
<ul>
{{#each list}}
<li>PLEASE WORK! >>>> {{title}}</li>
{{/each}}
</ul>
</template>
答案 2 :(得分:0)
你已经使用了帮助器给列表开火,这就足够了,也不需要为标题创建一个帮助器。你可以直接从blaze迭代项目和获取标题。
根据我的理解,你想迭代items数组,并从每个项目中获取标题。所以,在javascript中,
Template.list.helpers({
list: function () {
currentListId = Session.get('currentListId')
return Lists.find({
_id : currentListId
}).fetch();
}
})
在你的HTML中,
<template name="list">
<ul>
{{#each list}}
<li>PLEASE WORK! >>>> {{title}}</li>
{{/each}}
</ul>
</template>