以下data.id
变量在控制台中显示为undefined
是否有某种原因?
Meteor.methods({
'productUpdate': function(_data) {
var data = {
id: _data.id,
name: _data.name.trim(),
sku: _data.sku.toUpperCase(),
retail: _data.retail
};
Products.update(data.id, {$set: data}, function(error, result) {
console.log(data.id); // <------ WHY DOES THIS OUTPUT 'undefined'
if(error)
throw new Meteor.Error('validation', error.message, error.invalidKeys[0].name);
if(result)
logActivity('Products', data.id, 'Product updated');
});
}
});
我很困惑,但我必须遗漏一些基本的东西。如果我在回调之外定义它们,其他变量也可以工作,例如即使传入_data.id
也会返回一个值。
答案 0 :(得分:1)
看起来Collection2正在修改data
对象而不进行防御性克隆。尝试自己制作克隆:
Products.update(data.id, {$set: EJSON.clone(data)}, function () ...)