Backbone.js用于浏览器内页面布局编辑器?

时间:2012-12-04 12:43:07

标签: jquery ajax django backbone.js django-models

我正在开发一个Web应用程序,允许用户编辑页面上的元素(就像使用Adobe InDesign一样)。可以拖动,选择对象,并为用户提供侧栏,其中包含可以修改的对象的所有属性。

数据存储在数据库中的服务器上。我正在使用 Django tastypie 为数据库中的数据提供一个简单的REST接口。

基本上,数据的结构如下:

  • 文档
      • Page Objects

我已经用jQuery和jQueryUI做了一些测试,它们提供了允许对象选择,拖放等所需的大部分代码。一切都很好。

现在我正在考虑最好的方法是存储/管理/提取/更新页面上所有这些对象的信息。我可以手动完成所有操作,并使用jQuery.ajax()并将信息存储在数组,字典中并将它们链接到DOM元素。但是,我觉得有很多重新发明的轮子和样板代码可以避免。

所以我在网上搜索并遇到了Backbone.js。它让我想起了Django的ORM,似乎使管理所有数据变得更加简单。据我了解Backbone.js的想法,它允许我创建一个类似于服务器模型中定义的对象类,并使用它来存储有关对象的所有信息。

将Backbone.js用于此任务是否合适?我查看了它的文档,并看到它支持使用REST / Ajax进行同步。

2 个答案:

答案 0 :(得分:2)

Backbone可能适合您的需求,因为它确实以一种未与DOM耦合的方式提供管理数据的抽象,即通过Backbone.Model和{{1} }。

Backbone模型和集合通过处理AJAX生命周期,可以轻松管理与后端的通信。它还有一些有用的约定,用于执行客户端验证和围绕模型属性更改的pub / sub。

另一个需要注意的重要事项是Backbone易于以零散的方式使用。您可以利用模型概念并忽略视图/路由器或仅将其用于事件管理等。

文档非常好。 Have a look.

答案 1 :(得分:0)

您应该考虑ember.js是一个很好的工具,没有时间设法为服务质量调查生成应用程序(非简单)。并且完成了对emberjs的欣赏。因为这是他第一次完全停留在php服务器端,而不是将其用于REST以上。

也有优秀的documentation并且很容易扩展。