0

私はBackBoneを初めて使用し、Web上にあるテンプレートに基づいてアプリを構築しています。私はfile.jsonからデータをロードすることから始めます...

    livestock.groups = Backbone.Collection.extend({
    model: livestock.Activity,
    url: "groups.json"
    });

次に、コレクションをHTMLにロードし、ボタン機能を設定する数行のコードがあります。そして、終わり近くに、このような拡張コレクションを更新する行があります...

    function addToList(activity) {
    livestock.groups.add({id: 6, type: activity, comments: 'Wow...that was easy.'});
    }

これはコレクションのHTMLバージョンでは正常に機能しますが、.jsonファイルを更新する行をaddToList関数に追加したいと思います。これはどのように行うことができますか?

4

1 に答える 1

1

これは実際には不可能です。バックボーンは、RESTfulWebサービスと対話するためのものでした。'のようにJSONファイルへのURLを指定すると、GETリクエストが送信されます。これは正常に機能します。Webサービスを呼び出したかどうかはわかりません。ただし、コレクションに更新を送信する場合は、HTTPPOSTリクエストが生成されます。POSTただし、静的ファイルにリクエストを送信しても効果はありません。ApacheまたはJSONファイルをホストするために使用しているものは、おそらくそれを無視して静的ファイルを再度提供します。

ただし、実際の問題はバックボーン自体とは関係ありません。問題は、JavaScriptを介してリモートサーバー上のファイルを編集できないことです。バックボーンからのリクエストを受け取り、サーバーのハードドライブ上のファイルを更新できるPHPやRubyなどを使用する間にWebサービスが必要です。

代わりに、現在ローカルコンピューターで開発している場合、これは別の理由で機能しません。ブラウザは、セキュリティ上の理由から、htmlおよびjavascriptと同じフォルダにある場合でも、javascriptがハードドライブ上のローカルファイルを変更することを許可しません。

お役に立てれば。

編集:コメントに基づいて、ここにBackbonetoLocalStorageおよびIndexedDB用のいくつかのサンプルアダプターへのリンクを追加します。

于 2012-10-14T19:07:07.677 に答える