Mongodb 流星收藏-';这';集合更新后未定义
我正在使用表单将一些“设置”保存到Meteor集合(在下面的“设置集合”示例中) 因为有很多设置,所以我在这里使用了我在stackoverflow上一定找到的技巧,即在变量中获取集合(调用“设置”),删除._id,编辑,然后使用更新的变量更新集合 然而,这会弄乱“这个”:Mongodb 流星收藏-';这';集合更新后未定义,mongodb,meteor,Mongodb,Meteor,我正在使用表单将一些“设置”保存到Meteor集合(在下面的“设置集合”示例中) 因为有很多设置,所以我在这里使用了我在stackoverflow上一定找到的技巧,即在变量中获取集合(调用“设置”),删除._id,编辑,然后使用更新的变量更新集合 然而,这会弄乱“这个”: Template.settings_edit.events({ 'submit form': function(e, t) { var settings = this // 'THIS' BEING THE DA
Template.settings_edit.events({
'submit form': function(e, t) {
var settings = this // 'THIS' BEING THE DATA CONTEXT
var settings_id = this._id
console.log('settings_id: ', settings_id) //RETURNS _ID AS EXPECTED
settings.x = new_x
settings.y = new_y
settings.z = new_z
settings.a = new_a
// ...
// etc.
delete settings._id // MAKES THE COLLECTION 'HEADLESS' SO THAT I CAN USE IT FOR THE UPDATE BELOW
SettingsCollection.update(settings_id, { $set: settings })
console.log('this._id: ', this._id) // RETURNS UNDEFINED. WHAT HAPPENED TO 'THIS'???
return false;
}
})
我的问题是,“这个”怎么了
它肯定受到行删除设置的影响。\u id(我不知道为什么)
有没有另一种方法可以实现同样的更新(记住很多设置)同样精巧和简洁?因为您设置了设置=此,并且对象是通过引用分配的,这意味着如果您更改此设置,设置也会更改,反之亦然。 数组也是如此
对于由值指定的字符串、数字和布尔值,不会发生这种情况 啊哈。完全正确。但是,我可以通过使用空对象来实现相同的结果,例如var new_settings={},new_settings.a=new_a等。)