Метеор: вставить элемент списка в коллекцию из другой коллекции по нажатию кнопки? ошибка. Внутренняя ошибка сервера
У меня есть список объектов, называемых категориями, в них есть массив других объектов, которые являются сообщениями в этой категории, где id:129 - это идентификатор категории, а ID:100 - это идентификатор сообщения. это выглядит так
В моем html у меня есть кнопка на каждом элементе категории, которая при нажатии берет эту категорию и ее содержимое (сообщения и другие данные) и вставляет ее в новую коллекцию, которая должна быть специфичной для пользователя, например, закладкой, то есть, как тамбар, флипборд, токов Google, Zite имеют потоки, личные для пользователя, и когда вы следите за темой, сообщения в этой теме отражаются в вашем личном потоке.
Однако я получаю две ошибки
на консоли Chrome я получаю:
Ошибка при вызове метода addTimeline: внутренняя ошибка сервера [500]
в моем терминале я получаю:
Исключение при вызове метода addTimeline. ReferenceError: документ не определен
мой сервер JS такой
Meteor.methods({
'addTimeline': function(data){
Timeline.insert(doc);
}
});
Мой клиент JS выглядит так
Timeline.allow({
insert: function (userId) {
return (userId);
}
});
Template.CategoriesMain.events({
'click .addFav': function() {
Meteor.call('addTimeline');
}
});
Мой HTML выглядит так
<template name="CategoriesMain">
<ul>
{{#each articles}}
<li>
<a href="/catsingle/CategorySingle/{{_id}}"><h2>{{name}}</h2></a>
</li>
<button type="checked" name="button" class="addFav">add to fav</button>
{{/each}}
По правде говоря, я довольно новичок в метеорите, поэтому я пытался взломать и привязать, поэтому я не уверен, в чем конкретно проблема или как заставить ее работать.
1 ответ
Я вижу две ошибки.
Ошибка 1
В вашем методе addTimeline
, вы используете переменную doc
, но вы называете свой параметр data
,
Ошибка 2
В вашем обработчике события click вы вызываете метод addTimeline
, но вы не передаете это ни одного аргумента (data
параметр будет undefined
,