2011-12-30 297 views
1

[下面的背景] 我已经在后端Python中的SQLObject模拟了我的数据。现在,我将SQLObject转换为字典,并从字典中获取所有的键,然后将其作为JSON文档导出(所以只是一个JavaScript数组)。我打算做类似这样的事情:好主意/最好的方法来扩展Spine.Model

Spine.Model.extend({ 
    fromList: function(name, list){ 
     var model = Spine.Model.setup(name, list); 
     return model; 
    } 
}); 

这是个好主意吗? Spine是否已经提供这种功能?这是扩展Spine.Model类的最佳方式吗?

背景:

所以,我有一个Python应用程序,我使用Flask从一个GUI应用程序移植到一个Web应用程序。

我到了我正在做视图部分的地步,并意识到使用JavaScript框架来处理数据/控制应用程序等是非常有意义的。

经过一系列的研究后,我对Spine进行了研究(在第一次阅读时API对我意义重大,另外作者写了O'Reilly书籍JavaScript Web应用程序,因此有一个体面的参考)。

因为我已经在后端模拟了我的数据,所以我想导出该配置并使用它自动创建Spine模型,以便它们正在记录的数据始终保持同步(此如果我更改我的后端模型,前端在下一页加载时会自动更改)。

+0

人想出了在此之前让我一个滚草...任何人有什么想法? – tkone 2012-01-06 21:03:16

回答

1

看起来你正在考虑基于数据库中的模型使用Python字典动态创建客户端JavaScript模型 - > JSON作为两者之间的链接表示。

这听起来很复杂,我真的没有答案。它甚至可能是不必要的复杂:),但这是由你来决定的。不过,我有另一种解决方案。

为什么不动态地从Python生成Spine模型并只提供静态文件?然后,你所要做的就是编写一个python程序,用于在JavaScript或CoffeeScript中为脊柱模型输出有效的代码(如果模型经常变化或者在开发过程中根据需要改变,可能作为构建过程的一部分)。

同样,如果您没有大量的模型,并且定期更改生成模型,这可能会不必要地复杂化。即使这样,也许你所需要的只是一个验证工具,它验证你的后端数据是在Spine中正确建模的,并且只需手工编码一切。手动编码模型以包含他们需要的数据是相当容易的http://spinejs.com/docs/models

真的,在脊柱模型中设置实际“数据”就像@configure "Contact", "first_name", "last_name"一样简单现在脊柱模型有一个first_name和一个last_name ...

确保你没有把你的Complicator Gloves,你有这样的想法:)

+0

我正在动态生成Spine模型 - 而不是直接生成JavaScript代码,虽然我生成了模型的JSON表示,然后使用它来实例化Spine模型。你对手套是正确的,尽管......我还没有卖咖啡标记。谈论抽象层... – tkone 2012-01-09 19:47:36

+0

是的,我没有在CoffeeScript上销售。我最终可能会首先处理JavaScript和JQuery技能,然后对CoffeeScript有更好的了解。所以真的,我对JavaScript替代方案很感兴趣的主要原因是ATM我不太了解JavaScript。如果社区有一个方向,那么我们就会有这样一个方向,但有些学者和坚定的JavaScript开发人员争论双方。所以我会遵循他们的道路。在里面学习JavaScript,然后自己决定。或许,CoffeeScript将会被大量使用或死亡。 – 2012-01-10 00:48:11