Backbone.js构建复杂模型(模型到模型中)

时间:2012-10-21 20:14:54

标签: javascript 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模型。

2 个答案:

答案 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不处理关系,因此上面列出的插件在填补空白方面做得很好,而不需要太多的手工劳动。