我正在与Meteor一起练习,我不明白为什么MongoDB集合的remove功能无法正常工作。 这是我的html模板,在其中创建了一个按钮来删除新闻:
<template name="news">
<h2>News</h2>
<form>
<input type="text" name="title" placeholder="Add some news">
<button>Add</button>
</form>
<ul>
{{#each News in showNews}}
<li>{{News.title}}<button class="removeAction">×</button></li>
{{/each}}
</ul>
</template>
这是我的client.js文件,我在其中创建了执行删除功能的事件:
Template.news.events({
'submit form': function(e) {
e.preventDefault();
var title = e.target.title.value;
News.insert({ title: title, createdAt: new Date() });
e.target.title.value = "";
},
'click .removeAction': function(e, a) {
News.remove(this._id);
}
});
我真的不明白为什么它不起作用,我尝试了很多更改,但没有任何效果,当我单击“ X”按钮时,什么都没有发生。
答案 0 :(得分:0)
最可能的问题是未定义this._id。我认为您没有使用正确的方法。我不是一个狂热的用户,但我认为这会起作用。
<template name="news">
<h2>News</h2>
<form>
<input type="text" name="title" placeholder="Add some news">
<button>Add</button>
</form>
<ul>
{{#each showNews}}
{{> newsPost}}
{{/each}}
</ul>
</template>
<template name="newsPost">
<li>{{title}}<button class="removeAction">×</button></li>
</template>
您的removeAction事件侦听器应如下所示。
Template.newsPost.events({
'click .removeAction': function(e, a) {
News.remove(this._id);
}
});