骨干模型结构?

时间:2014-03-22 19:10:46

标签: javascript backbone.js

我需要跟踪一组用户模型的消息,起初我认为这将是一个很棒的模型结构。

var myModel = {
    _id: 798698,
    username: "John",
    message: {
        message1: "Some cool messsage",
        message2: "I'm mad Ohio State lost"
    }
}

然后我想如果我想按照从旧到新的顺序呈现来自所有用户的所有消息,我可以添加时间戳。这意味着我需要扩展模型。

var myModel = {
    _id: 798698,
    username: "John",
    message: {
        message1: {message: "Some cool messsage", sent: "3/22/2014 12:20"},
        message2: {message: "I'm mad Ohio State lost", sent: "3/22/2014 12:21"}
    }
}

对我而言,这是一个很好的结构,但我知道,我是新人。

但这会带来骨干网的一些问题。如果我有所有消息的集合视图,则单个模型的itemView将包含在el中。所以我可以使用句柄来循环上面的消息对象,但它会像这样渲染。

<div class="model">

    <div class="message">
        John: Some cool message
    </div>
    <div class="message">
        John: I'm mad Ohio State lost
    </div>

</div>

您看到以上内容已被包装,因此这意味着是否有其他用户模型。

var myModel2 = {
    _id: 798698,
    username: "Scottie",
    message: {
        message1: "Hey guys",
        message2: "I am the SEC player of the year."
    }
}

视图不会呈现消息列表,而是呈现模型块,如下所示。

<div class="model">

    <div class="message">
        John: Some cool message
    </div>
    <div class="message">
        John: I'm mad Ohio State lost
    </div>

</div>

<div class="model">

    <div class="message">
        Scottie: Hi Guys
    </div>
    <div class="message">
        Scottie: I am the SEC player of the year.
    </div>

</div>

我正在尝试一种可以呈现列表的结构,并按时间顺序发送。

所以,例如,如果convo去了... John,Scottie,John,Scottie ......我可以像这样渲染。

<div class="message">
    John: Some cool message
</div>
<div class="message">
    Scottie: Hi Guys
</div>
<div class="message">
    John: I'm mad Ohio State lost
</div>
<div class="message">
    Scottie: I am the SEC player of the year.
</div>

所以我应该创建两个集合并将消息模型与用户模型相关联,或者是否有一种方法可以按照我的方式构建模型并使其与主干很好地一起使用。我选择哪个更好,我想简要解释一下原因。那个开发人员真是太棒了!

谢谢!

1 个答案:

答案 0 :(得分:0)

看看Backbone.Relational:

http://backbonerelational.org/