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に基づいてゼロからアプリケーションを構築する方法がわかるようです。

問題は、私が既に書いたものを使用して、データを LocalStorage の代わりに stackmob に保存することができるか、または JS-SDK チュートリアルに従ってアプリを書き直すべきかということです。

ありがとう、オズ

4

1 に答える 1

1

私は coffeescript の構文には詳しくありません (少なくとも、まだです!) が、近いうちに慣れるつもりです。残念ながら、その Todo チュートリアルのローカル ストレージ アダプターのリンクは壊れているため、調べることはできませんが、それまでの間、理由を説明できるかもしれません。Todo が Backbone.Model から次の構文で拡張されていることに気付きました。

class Todo extends Backbone.Model

非 coffeescript 構文では、次のようにレイアウトされます。

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

同様に、StackMob に保存する Todo を作成すると、次のようになります。

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

では、この翻訳はうまくいくでしょうか?

class Todo extends StackMob.Model

class TodoList extends StackMob.Collection

これは、StackMob 対応のモデルを定義するのと同等の coffeescript のように思えます。これにより、モデルにサーバー側の 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 を適切に初期化する必要があることを忘れないでください。ただし、初期化手順はGetting Started: The JS SDKおよびJS SDK Tutorialドキュメントに記載されています。

これでうまくいくことを願っています!

エリック

于 2012-05-03T05:51:27.453 に答える