0

モデルへの odata 応答のバインドに問題があります。最初は、単純なモデルと、正常に機能している単純な応答がありました。しかし、その後、応答を odata 形式に変更しました。私のバックボーンモデルは次のとおりです。

    var UserCard = Backbone.Model.extend({
    defaults: {
        ...
    }
});

およびその関連コレクション:

    var UserCards = Backbone.Collection.extend({
    model: UserCard,
    url: '/odata/UserCards'
});

このコレクションは、以下のように応答を変更するまで入力されていました。

{
 "odata.metadata":"http://website.com:53176/odata/$metadata#UserCards",
 "value":[{...},{...}...]
 }

メソッドを呼び出すと、collection.fetchこの応答と互換性のないモデルに上記を入れようとします。ただし、モデルは、上記の json の value 属性内に含まれるものと互換性があります。

value完全な応答ではなく、属性からモデルをロードできる方法があるかどうかを知りたいですか?

4

1 に答える 1

2

parse()モデル/コレクションのメソッドをオーバーライドできます。例えば:

parse: function(data) {
    return data.value;
}

parseバックボーンがサーバーからデータを取得するときに呼び出すメソッドです。バックボーンのドキュメントはこちらを参照してください

于 2013-07-05T23:10:02.873 に答える