【问题标题】:Meteor remove function doesn't work on a Collection流星移除功能不适用于集合
【发布时间】:2019-09-21 19:42:52
【问题描述】:

我正在使用 Meteor 进行练习,但我不明白为什么 MongoDB 集合的删除功能不起作用。 这是我的 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">&times;</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”按钮时没有任何反应。

【问题讨论】:

    标签: javascript mongodb meteor


    【解决方案1】:

    问题很可能是 this._id 没有定义。我认为您没有以正确的方式使用 blaze。我不是 blaze 用户,但我认为这会起作用。

    <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">&times;</button></li>
    </template>
    

    您的 removeAction 事件侦听器应该如下所示。

    Template.newsPost.events({
      'click .removeAction': function(e, a) {
        News.remove(this._id);
      }
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-02
      • 1970-01-01
      • 2012-02-19
      相关资源
      最近更新 更多