模型的属性......
attributes: Object
array: Array[1]
id: "ef93fcc0d431d1000003"
state: "new"
我正在设置......我唯一的区别是为数组添加了另一个值。
model =
array: Array[2]
id: "ef93fcc0d431d1000003"
state: "new"
__proto__: Object
我像这样扩充数组......
new_array = model.get('array').slice()
new_array.push new_value
model.set({array: new_array})
完全错误......
Object function (obj) { return new wrapper(obj); } has no method 'has'
这是Backbone.js引发它的一点......
// Update attributes.
for (attr in attrs) {
val = attrs[attr];
if (!_.isEqual(now[attr], val)) delete escaped[attr];
options.unset ? delete now[attr] : now[attr] = val;
delete this._changed[attr];
if (!_.isEqual(prev[attr], val) || (_.has(now, attr) != _.has(prev, attr))) {
Uncaught TypeError: Object function (obj) { return new wrapper(obj); } has no method 'has'
this._changed[attr] = val;
}
}
这是从服务器发送的更新。
只是找出一些想法或方向来找出导致此错误的原因。
谢谢!
答案 0 :(得分:6)
您的代码看起来像是Underscore.js。也许这不见了?
答案 1 :(得分:0)
在我的情况下,问题是尝试使用最新版本的Backbone-relational与旧版本的Backbone.js结合使用。将Backbone从v0.9.1更新到0.9.2会立即修复它。