2012-10-21 55 views
3

有没有办法在Backbone.js的建立更复杂的模型,让我用一个例子解释: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模型。

回答

3

你可以试试这个:

window.SessionType = Backbone.Model.extend({ 

    initialize:function() { 
    }, 

}); 

然后在你的会话模式,有一个方法:

window.Session = Backbone.Model.extend({ 

    initialize:function() { 
    }, 

    getSessionType() { 
     return new SessionType(this.get('sessionType')); 
    } 

}); 

现在你可以调用getSessionType()方法返回,可以有你的逻辑模型。

2

@Amulya是100%正确的。但是,如果你想要会话模型而不必调用getSessionType(),我会考虑使用内置的分析方法并从那里创建你的模型。

如果您的会话模型与您的模型有关,我会考虑使用Backbone Relational。由于Backbone不处理关系,因此上面列出的插件在弥补差距时没有太多的手工劳动就做得很好。