2013-07-05 39 views
0

我在将模型响应绑定到模型时遇到了问题。最初,我有一个简单的模型和一个简单的响应,工作正常。但后来我改变了我的回应,以odata格式。我的骨干MODLE是:如何从属性中加载骨干模型作为回应?

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属性加载我的模型,而不是完整的响应?

回答

2

您可以覆盖模型/集合的parse()方法。例如:

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

parse是方法调用骨干时,从服务器中检索数据,请参见Backbone docs here

+0

刚刚试了一下,它的工作。谢谢:) – sttaq

+0

不用担心。愉快的骨干。 – Twicetimes

+0

到目前为止,它打破了我的主干:S – sttaq