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

Posted

技术标签:

【中文标题】Backbone.js 用于浏览器内页面布局编辑器?【英文标题】:Backbone.js for in-browser page layout editor? 【发布时间】:2012-11-22 02:17:21 【问题描述】:

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

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

基本上数据的结构如下:

文档 页面 页面对象

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

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

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

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

【问题讨论】:

太好了,你打算开源它吗?我正在起草一个类似的项目。我在 UI 中使用 knockout.js,对 DND 使用 html5sortable(我发现在嵌套小部件中拖放有点困难)和自定义 JSON 格式。我不确定backbone.js 是否对我们有帮助见。 @okm:不,这是商业项目,所以我不能开源。 我明白了.. 继续努力,祝你好运 =) 【参考方案1】:

Backbone 可能适合您的需求,因为它确实以一种不与 DOM 耦合的方式提供了管理数据的抽象,即通过Backbone.ModelBackbone.Collection。 p>

Backbone 模型和集合通过处理 AJAX 生命周期,可以轻松管理与后端的通信。它还具有有用的约定,用于执行客户端验证和围绕模型属性更改发布/订阅等操作。

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

文档非常好。 Have a look.

【讨论】:

现在我已经花了一些时间使用backbone.js,它看起来越来越像我需要的了。似乎我必须稍微调整模型的代码,以便正确解析响应,因为我在服务器端使用了美味的馅饼。【参考方案2】:

您应该认为ember.js 是一个出色的工具,没有时间管理应用程序(不是微不足道的)来生成服务质量调查。并且已经完成了 emberjs 的欣赏。因为这是他第一次完全停留在 php 服务器端,并且除了 REST 之外没有使用它。

还有优秀的documentation,而且很容易扩展。

【讨论】:

以上是关于Backbone.js 用于浏览器内页面布局编辑器?的主要内容,如果未能解决你的问题,请参考以下文章

将服务器端 MVC 与 Backbone.js 相结合

wordpress 页面布局乱了

如何使用backbone.js 路由器切换视图?

用于 Restful 后端的 Ember.js 或 Backbone.js [关闭]

前端框架 | Backbone.js在大型单页面应用中的应用实践

Backbone.js:在视图之间导航 - 销毁和重新创建