2012-04-30 7 views
0

私は完全にローカルのバックボーンアプリを作っています。サーバ側は含まれていません。アプリにいくつかの初期ローカルデータを提供します。データは実際にはjsonファイルで、dataというフォルダに格納されているCollectionデータです。だから、私はdata/datalist.jsonであるURL属性をCollectionに提供し、initalデータを取得するにはthis.collection.fetch()を使用します。すべてうまくいく。私のアプリケーション全体とデータがローカルの場合、Backbone.Model.save()はどのように使用できますか?

しかし、このコレクションのjsonデータファイルの対応するモデルデータへの変更をViewに保存するとします。 this.model.save({name: newName})は私にとってはうまくいかないようです。私はページ全体をリフレッシュするたびに、アプリはまだインラインデータファイルを表示します。では、Viewのアイテムが更新、削除、または作成されたときに、データファイルをどのように変更する必要がありますか? Modelにurl属性を設定する必要はありますか?

答えて

2

Model.saveはBackbone.syncメソッドを呼び出します。このメソッドは、デフォルトでCRUD関数をREST APIにマップします。保存/更新/削除にREST以外のものを使用する場合は、Backbone.syncをオーバーライドする必要があります。

Backbonejsによって承認されGithubに、上の同期を無効にしますローカルストレージのプラグインがあります:Backbone.localStorage

アプリが起動している間、このプラグインは、あなたのデータを保持する必要があります。ファイルシステムに変更を書きたい場合は、ファイルシステムを拡張する必要があります(わかりませんが、自分で使ったことはありません)。うまくいけば、これはあなたが始まります。

+0

localStorageとsessionStorageの唯一の欠点は、それをサポートしていない旧式のブラウザだから、Lawnchair(http://westcoastlogic.com/lawnchair/adapters/)のような古い技術のラッパーあなたは機能しているブラウザのより広いベースです。しかし、まだ残っているものは、代わりにLawnchairを使用する新しいBackbone.syncを作成する必要があるかもしれません。 –

+0

@ JohnMunschもし私がchromeやfirefoxのような最新のブラウザを使っているのであれば、localStorageプラグインだけでは十分ではないと言われていますか? **私は**新しいBackbone.syncを作成する必要がありますか? – chaonextdoor

+0

@chaonextdoor絶対にそうではありません。 「When can I use ...」(http://caniuse.com/#search=localstorage)のような優れたツールを参照すると、サポートしようとしているすべてのブラウザでlocalStorageが利用可能であると表示されます。そうでなくても、大部分のブラウザでサポートされている場合は、後で戻って後で別のバージョンの同期のために交換して、うまく動作しているアプリケーションと使いたい人がいればブラウザのサポートを追加してください。 –

関連する問題