【发布时间】:2017-10-31 14:47:32
【问题描述】:
我有一个按钮 .toggle-addToSet 捕获两个整数,this.id 是当前帖子的 id,setid (sid) 是集合 Set 的 _id,用户可以创建该集合他们想要多少就多少。目标是用this.id 更新给定_id sid 的选定Set。 js里面是这样的
Template.latestSingle.events({
'click .toggle-addToSet': function(e, template) {
var ob = this.id
console.log(ob);
var sid = $(e.currentTarget).data('setid');
Meteor.call('addingSets', ob, sid, function(error, user) {
console.log(ob)
});
}
});
发生了什么是ob 是数组中单个文档的id,这个文档是一个帖子,所以我正在捕获那个帖子。
在每个帖子上下文中都有一个模式,它会产生一个名为 Sets 的集合,该集合有一个名为 ArticleId 的子文档数组,用户可以通过插入 this.id @987654337 来更新它@ 通过点击功能与按钮toggle-addToSet 如上所示。
用户创建带有 Business 或 Lifestyle 等标题的 Set,当他们创建它时,他们可以将帖子 ID 保存在名为 ArticleId 的数组中每当他们找到想要添加的帖子时。想想 Pinterest Boards 或 G+ 合集。
var sid = $(e.currentTarget).data('setid');是用户选择添加文章的每个Set的_id。
这个想法是通过 Set 的 _id sid 将 this.id (ob) 添加到所选的 Set 中。每套看起来像这样
所以我的方法是这样的
Meteor.methods({
addingSets: function(set, sid, ob) {
console.log(sid);
console.log(ob);
Sets.update({
_id: sid
},
{
$addToSet: {
ArticleId: ob
}
});
}
});
但是这不起作用,我似乎无法更新它。我可以通过表单手动输入,但是当通过点击功能更新它时,它不起作用。
当我在我的服务器中执行 console.log(sid); 时,我会在终端中获得正确的 Set _id。
当我在我的服务器中执行console.log(ob); 时,我在终端中得到unidentified 的方法。但是在我的客户端中,它正在记录正确的 this.id,因此某处存在断开连接,我不确定如何处理。
【问题讨论】:
-
一些错误。查看您的方法: function(set, sid, ob) { console.log(sid);控制台.log(ob);什么是设置参数?删除它。你用 ob + sid 调用,但方法需要 sib +ob。查看参数的顺序。
-
谢谢! @iiro 这有效
标签: javascript meteor