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是 Backbone 从服务器检索数据时调用的方法,请参阅此处的 Backbone 文档

于 2013-07-05T23:10:02.873 回答