集合回调忽略范围变量
Collection callback ignoring scope variable
以下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
也会返回一个值。
Collection2似乎正在修改data
对象,而没有进行防御克隆。尝试自己制作一个克隆:
Products.update(data.id, {$set: EJSON.clone(data)}, function () ...)
相关文章:
- ngDialog-弹出窗口未更新范围变量
- AngularJS范围变量Unwatch
- 将外部控制器的范围变量设置为角度
- 对于使用传递的数据计算的局部范围变量,角度绑定在自定义指令中不起作用
- 如何使用EnquireJS使AngularJS范围变量依赖于媒体查询
- 具有范围变量的控制器不工作
- 范围变量返回长度错误
- 将 NodeJS 模块范围变量作为对象访问
- Angularjs 更新 setTimeout 中的范围变量不起作用
- 递归承诺调用 - 内存范围变量问题
- AngularJS:从指令设置范围变量
- Angularjs:访问范围变量数组并计算平均值
- 范围变量更新,但不更新视图
- 从html调用angularjs控制器中的一个函数,但未定义范围变量
- 如何在编辑范围变量时(暂时)避免摘要循环
- 防止Angular范围变量通过引用自动绑定到服务私有成员
- 使用 AngularJS 从指令设置范围变量
- 集合回调忽略范围变量
- 使用forEach修改角度范围变量
- 因果报应测试中未定义的预期范围变量