有没有办法在Backbone.js中构建更复杂的模型,让我通过一个例子来解释:
这是一个Json Session对象:
{
id: "17",
notes: "",
start: "2012-10-18T15:57:41.511Z",
end: "2012-10-18T19:22:31.875Z",
sessionType: {
id: "1",
name: "Life Style",
}
}
从服务器检索会话对象时,我希望有一个SessionType Backbone.Model,以便在此对象周围添加一些业务逻辑。
到目前为止,我只能使用虚拟SessionType检索对象会话,我无法在其上添加任何逻辑,因为它不属于任何Backbone模型。
答案 0 :(得分:3)
你可以试试这个:
window.SessionType = Backbone.Model.extend({
initialize:function () {
},
});
然后在你的会话模型中,有一个方法:
window.Session = Backbone.Model.extend({
initialize:function () {
},
getSessionType () {
return new SessionType(this.get('sessionType'));
}
});
现在你可以调用getSessionType()
方法,它返回一个可以拥有你逻辑的模型。
答案 1 :(得分:2)
@Amulya 100%正确。但是,如果你想要会话模型而不必调用getSessionType(),我会考虑使用内置的解析方法并从那里创建你的模型。
如果您的会话模型与您的模型相关,我会考虑使用Backbone Relational。由于Backbone不处理关系,因此上面列出的插件在填补空白方面做得很好,而不需要太多的手工劳动。