Inheritance Spine.js动态模型//Coffeescript动态类创建

Inheritance Spine.js动态模型//Coffeescript动态类创建,inheritance,coffeescript,spine.js,Inheritance,Coffeescript,Spine.js,各位嘉宾: 简短版本: 尝试动态创建脊椎模型类。基本上,我从服务器上得到一个JSON,告诉我模型名和属性是什么,然后我将尝试创建一个派生自spine.model的类 由于Spine.js使用了在实例化之前配置的Coffeescript类,所以我想动态创建一个类——它可以工作,但只有一些继承的功能不能工作 问题: 继承的函数工作时,fetch似乎不工作,而且似乎没有办法设置类名 代码: 你能把咖啡脚本推到什么程度真是太迷人了。提前感谢您提供解答这个高级谜题的任何线索。我不太清楚Spine.js是

各位嘉宾:

简短版本: 尝试动态创建脊椎模型类。基本上,我从服务器上得到一个JSON,告诉我模型名和属性是什么,然后我将尝试创建一个派生自spine.model的类

由于Spine.js使用了在实例化之前配置的Coffeescript类,所以我想动态创建一个类——它可以工作,但只有一些继承的功能不能工作

问题: 继承的函数工作时,fetch似乎不工作,而且似乎没有办法设置类名

代码:


你能把咖啡脚本推到什么程度真是太迷人了。提前感谢您提供解答这个高级谜题的任何线索。

我不太清楚Spine.js是如何工作的,但是通过查看您的代码,我注意到
fetch
CDModel
的一个类方法,这就是您在第一次测试中如何使用它的,在测试中,您将获取静态消息,'但是对于动态类,您尝试使用
fetch
作为实例方法

为了清楚起见,我将名称更改为DynamicClass,但我做了以下操作:

// The class name is DynamicClass
DynamicClass = gen ("Testclass")
// ... more code ...
DynamicClass.bind("refresh change", (item) -> $("#element2").html DynamicClass.first().message )

params = type: 'POST', data: 'json=[{"message":"Dynamic msg"},{"message":"another message"}]'
DynamicClass.fetch(params)
我注意到这只在您注释掉对第一个测试的调用时起作用,但是由于不熟悉Spine.js,我不完全确定为什么会发生这种情况

我希望这有帮助。
Sandro

我更新了代码:我犯了一个愚蠢的错误,调用实例而不是类方法。谢谢你,桑德罗!。这是最新的代码:我跟踪了这个奇怪的行为,发现spine中从其他模型继承的模型上绑定事件的问题:这对我来说有一些奇怪的副作用。出于某种原因,第一个AJAX调用输出到第一个div,第二个调用输出到第一个和第二个div,第三个AJAX调用输出到所有三个div。我认为这与类定义中的@configure调用有关,但我可能错了。它在重新配置新创建的类时起作用。这将导致所有事件被抛出(取消绑定)。然后需要重新配置和新扩展它。有点奇怪,但它是有效的。嗨,桑德罗,非常感谢你的关注。你完全正确。真正的代码调用类方法,但仍然失败。更新的代码也不起作用。。。我似乎无法使用fetch方法来实际获取json。。。隐马尔可夫模型。。。我还测试了一些,我正在加载动态模型。但我测试的次数越多,行为就越奇怪。最新的是,我在你的代码上做了一点手脚,并更新了JSFIDLE。必须搞乱类的创建方式,还必须在动态类生成后调用模型上的configure和extend。不过看起来很有效。谢谢你,穆奇。。。这很好用。因为configure会解除所有事件的绑定,所以它可以正常工作。这也是它需要重新配置的原因…它应该如何运行?当我试着拉小提琴时,我得到的只是“加载”,而实际上什么都没有发生。。。