Функция удаления метеора не работает в Коллекции - PullRequest
0 голосов
/ 21 сентября 2019

Я тренируюсь с 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», ничего не происходило.

1 Ответ

0 голосов
/ 21 сентября 2019

Скорее всего, проблема в том, что this._id не определен.Я думаю, что вы не используете 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);
  }
});
...