0

私はモデルを持っています

var TodoModel = Backbone.Model.extend({
    defaults: {
        title : '',
        completed: false
    }
});

メソッドを使用してこのモデルをコレクションに追加しようとするとCollection.create、エラーが発生します

キャッチされないエラー: 「url」プロパティまたは関数を指定する必要があります

私は次の方法で試しました

var TodoCollection = Backbone.Collection.extend({
    model : TodoModel,
});

todoCollection.create({title:'Try out code examples', completed:true});

誰かがこれについて私を助けることができますか?

4

2 に答える 2

3

モデル/コレクションを作成している場合 -- デフォルトでは、リソースの URL を指定する必要があります。これは次のように行うことができます。

var TodoModel = Backbone.Model.extend({
    defaults: {
        title : '',
        completed: false
    }
});

var TodoCollection = Backbone.Collection.extend({
    url: '/todos',
    model : TodoModel,
});

詳細については、 http://backbonejs.org/#Collection-urlを参照してください。

ここでの混乱は、ローカル ストレージ ( http://documentcloud.github.com/backbone/docs/backbone-localstorage.html )を使用する Backbone.js の Todo サンプルから来ていると思います。localstorage コードの一番下にジャンプすると、Backbone.syncが設定されていることがわかります。これにより、モデル作成のデフォルトの動作が変更され、Url が不要になります。ほとんどのバックボーン アプリケーションではそうではなく、モデルを機能させるにはサーバー側の URL が必要です。

于 2013-01-03T07:33:53.673 に答える