meteor数据库插入到全局集合中
下面的代码应该在Tasks集合中插入selected item值,保留信息以供以后使用,并且headerLabel应该显示所选任务。当click.menuItem函数运行时,我无法使标题标签显示任务。谢谢meteor数据库插入到全局集合中,meteor,meteor-blaze,Meteor,Meteor Blaze,下面的代码应该在Tasks集合中插入selected item值,保留信息以供以后使用,并且headerLabel应该显示所选任务。当click.menuItem函数运行时,我无法使标题标签显示任务。谢谢 Tasks = new Mongo.Collection('tasks'); Template.mainMenu.events({ 'click .menuItem': function(event){ Tasks.insert({menuItem: $(event.current
Tasks = new Mongo.Collection('tasks');
Template.mainMenu.events({
'click .menuItem': function(event){
Tasks.insert({menuItem: $(event.currentTarget).data('value')});
}
});
Template.header.helpers({
headerLabel: function( id ){
return Tasks.findOne({_id: id}).menuItem;
},
tasks: function(){
return Tasks.find();
}
});
<template name="mainMenu">
<div class="container">
<div class="row">
<section class="col-xs-12">
<div class="list-group">
{{#each menuItems}}
<a href="#" class="list-group-item menuItem" data-value={{menuItem}}>
<img src="/abc.png">
{{menuItem}} <span class="badge">></span>
</a>
{{/each}}
</div>
</section>
</div>
Tasks=newmongo.Collection('Tasks');
Template.main菜单.events({
“click.menuItem”:函数(事件){
insert({menuItem:$(event.currentTarget.data('value'))});
}
});
Template.header.helpers({
headerLabel:函数(id){
返回Tasks.findOne({u id:id}).menuItem;
},
任务:函数(){
返回任务。find();
}
});
{{{#每个菜单项}
{{/每个}}
☰
{{{if headerLabel}{{headerLabel}}{{else}}选择一项{/if}
⋮
假设单击可以发生多次,您需要将相应任务的id传递给您的助手:
Tasks = new Mongo.Collection('tasks');
Template.mainMenu.events({
'click .menuItem': function(event){
Tasks.insert({menuItem: $(event.currentTarget).data('value')});
}
});
Template.header.helpers({
headerLabel: function( id ){
var task = Tasks.findOne({_id: id});
if( task ) {
return task.menuItem;
}
},
tasks: function() {
return Tasks.find();
}
});
所以我要做的是找到一个任务的menuItem,它的ID传递给助手。我还添加了一个tasks
helper来获取所有任务。因此,您的模板可能类似于:
<template name="mainMenu">
{{#each task in tasks}}
<h4>{{headerLabel task._id}}</h4>
<!-- Additional code here... -->
{{/each}}
</template>
{{{#任务中的每个任务}
{{headerLabel任务_id}}
{{/每个}}
显然,您需要根据自己的具体情况定制HTML,但这应该能为您提供要点。希望有帮助 你什么意思?click事件未触发或插入无效?我发布了模板,headerLabel未显示正在单击的菜单项。您是否按照我的建议修复了帮助程序?是的,并发布了更新的建议以供确认。任务对象是否正确插入?当您在控制台中执行
Tasks.find().fetch()
时,您是否得到了预期的结果?是的。但初始页面重新加载会出现异常(模板帮助程序中的异常:TypeError:无法读取Object.template.header.helpers.headerLabel处未定义的属性“menuItem”)
<template name="mainMenu">
{{#each task in tasks}}
<h4>{{headerLabel task._id}}</h4>
<!-- Additional code here... -->
{{/each}}
</template>