在model.save上抛出Backbone.js TypeError

时间:2011-09-19 22:32:08

标签: backbone.js

在我目前的Backbone应用程序中,我没有创建或销毁任何问题 楷模。更改传播到我的服务器没有任何问题。但 每当我尝试做一个model.save(属性)时,我都会看到一个TypeError 抛出这一行:https://github.com/documentcloud/backbone/blob/master/backbone.js#L117

模型在(Rails)服务器上更新,但有些东西会中断 之后。这是堆栈跟踪。 (对不起,行号是指 连接的JS文件。)

Backbone.Events.trigger() at application.js:11574 
_.extend._onModelEvent() at application.js:12092 
d() at (internal script):1426Backbone.Events.trigger() at 
application.js:11574 
_.extend.change() at application.js:11808 
_.extend.set() at application.js:11680 
_.extend.save() at application.js:11753 
Map.mapMoveGeoPointMode() at app.js:741 
(anonymous function)() at app.js:894 
jQuery.event.handle() at application.js:2966 
jQuery.event.add.elemData.handle.eventHandle() at application.js:2600 

在以前的应用程序中,我在保存模型时遇到了一些问题 像这样。有什么建议可以看看吗?

注意:我认为我没有重复this fellow's problem尝试保存没有网址的模型。

2 个答案:

答案 0 :(得分:3)

鉴于模型在服务器上正确更新,我认为这与save()函数本身没有任何关系,而是与它触发的change事件有关 - 我想你可以通过调用myModel.trigger('change')并查看是否会引发相同的错误来测试这一点。

我最好的猜测是,为什么会发生这种情况,就像你绑定某个功能以外的其他方式 - 例如未定义的变量 - 到change事件。我会找到这样的错误:

myModel.bind('change', this.misspelledMethod, this);

但是如果没有看到实际的代码而不仅仅是堆栈跟踪,那么进一步调试几乎是不可能的。

答案 1 :(得分:1)

看起来你绑定到模型上的事件并传入一些不是有效函数的东西。确保所有绑定语句都传递函数:

var FUNC = function() {};
MyModel.bind('reset' FUNC);