0
我正在使用表單將一些'設置'保存到Meteor集合中(在下面的示例SettingsCollection中)。流星集合 - 'this'在集合更新後未定義
因爲有一個lot的設置,我使用了一個技巧,我必須在這裏找到stackoverflow,即抓取變量中的集合(調用'settings'),刪除._id,編輯,然後使用更新後的變量更新集合。
然而,這與「本」搞亂的效果:
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;
}
})
我的問題是 - 發生了什麼事「這個」?
它肯定是受行刪除settings._id(我想不出爲什麼)。
是否有另外一種方法可以實現同樣的更新(記住很多設置),它們同樣狡猾和簡潔?
啊哈。完全正確。然而,我可以通過使用一個空的物體來達到相同的結果,例如, var new_settings = {},new_settings.a = new_a等) –