2012-05-02 35 views
1

我的建築,就是一個變化,以StackMob遠程服務器TODOS例如 http://jasongiedymin.github.com/backbone-todojs-coffeescript/docs/coffeescript/todos.html連接基於骨幹localStorage的應用程序通過Stackmob SDK

正如你所看到的,應用程序將數據保存到瀏覽器的localStorage的。

我希望它將它保存到我使用的遠程服務器,即StackMob。 讀了StackMob JS - SDK教程,似乎在告訴我如何基於JS的SDK http://www.stackmob.com/devcenter/docs/JS-SDK-Tutorial

問題從頭開始建立一個應用程序,是我可以用我已經寫了,並使其店在stackmob而不是LocalStorage的數據,或者我應該更好地重寫JS-SDK教程之後的應用程序?

感謝, 奧茲

回答

1

我不熟悉CoffeeScript的語法(至少,尚未!),但我會在不久的將來用它自己熟悉。不幸的是,該Todo教程中的本地存儲適配器鏈接已損壞,因此我無法查看該內容,但在此期間,也許我可以將其推斷出來。我這樣做的Todo從Backbone.Model通過語法延伸通知:

class Todo extends Backbone.Model 

非CoffeeScript的語法會有它佈局爲:

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

同樣,創建保存到StackMob待辦事項看起來像:

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

因此,也許這個翻譯將工作?

class Todo extends StackMob.Model 

class TodoList extends StackMob.Collection 

這似乎是確定啓用StackMob模型,讓你的模型的服務器端CRUD能力的CoffeeScript的等價物。

當調用save()時,擴展StackMob.Model的模型將使用JSON對StackMob進行ajax調用,並將其保存到服務器端數據庫。同樣,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。但是,初始化步驟記錄在Getting Started: The JS SDKJS SDK Tutorial文檔中。

希望這會讓你在路上!

Erick

+0

非常感謝埃裏克! –

+0

當然!就像附錄一樣,StackMob.Model擴展了Backbone.Model,StackMob.Collection擴展了Backbone.Collection,所以你應該得到通常使用Backbone獲得的所有其他內容。 –