1

我正在构建这是这个 todos 示例的变体 http://jasongiedymin.github.com/backbone-todojs-coffeescript/docs/coffeescript/todos.html

如您所见,应用程序将数据保存到浏览器的本地存储中。

我希望它保存到我正在使用的远程服务器,即 StackMob。阅读 StackMob JS - SDK 教程后,它似乎告诉我如何基于 JS SDK http://www.stackmob.com/devcenter/docs/JS-SDK-Tutorial从头开始​​构建应用程序

问题是,我是否可以使用我已经编写的内容,并将数据存储在 stackmob 而不是 LocalStorage 中,或者我应该更好地按照 JS-SDK 教程重写应用程序?

谢谢,奥兹

4

1 回答 1

1

我不熟悉coffeescript 语法(至少现在还不熟悉!),但我会在不久的将来熟悉它。不幸的是,该 Todo 教程中的本地存储适配器链接已损坏,所以我无法调查,但与此同时,也许我可以推理出来。我确实注意到 Todo 通过以下语法从 Backbone.Model 扩展:

class Todo extends Backbone.Model

非咖啡脚本语法将其布局为:

var Todo = Backbone.Model.extend({ ...});

同样,创建一个保存到 StackMob 的 Todo 如下所示:

var Todo = StackMob.Model.extend({...});

所以也许这个翻译会起作用?

class Todo extends StackMob.Model

class TodoList extends StackMob.Collection

这似乎相当于定义启用 StackMob 的模型的咖啡脚本,为您的模型提供服务器端 CRUD 能力。

扩展 StackMob.Model 的模型将在调用时使用 JSON 对 StackMob 进行 ajax 调用,并将其save()保存到服务器端数据库。同样model.fetch()将从数据库中检索并填充模型。

TodoList 将内置 StackMob 查询,因此您可以执行以下操作:

(regular JS syntax:)
//Get the first five "done" Todo items, order by the "created date"
var q = (new StackMob.Collection.Query()).equals('done', true).
    setRange(0,4).orderAsc('createddate');
var todos = new TodoList();
todos.query(q);

当我有更多时间时,我会在本周晚些时候自己尝试一下,但我想现在就回复你,尽管今晚很晚,以防万一这可以帮助你继续前进。不要忘记,要真正正确保存,您需要一个 StackMob 帐户并正确初始化 JS SDK。但是,初始化步骤记录在入门:JS SDKJS SDK 教程文档中。

希望这能让你上路!

埃里克

于 2012-05-03T05:51:27.453 回答