在我目前的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尝试保存没有网址的模型。
答案 0 :(得分:3)
鉴于模型在服务器上正确更新,我认为这与save()
函数本身没有任何关系,而是与它触发的change
事件有关 - 我想你可以通过调用myModel.trigger('change')
并查看是否会引发相同的错误来测试这一点。
我最好的猜测是,为什么会发生这种情况,就像你绑定某个功能以外的其他方式 - 例如未定义的变量 - 到change
事件。我会找到这样的错误:
myModel.bind('change', this.misspelledMethod, this);
但是如果没有看到实际的代码而不仅仅是堆栈跟踪,那么进一步调试几乎是不可能的。
答案 1 :(得分:1)
看起来你绑定到模型上的事件并传入一些不是有效函数的东西。确保所有绑定语句都传递函数:
var FUNC = function() {};
MyModel.bind('reset' FUNC);