5

我正在使用带有嵌套模型的主干.js。这个想法是自包含作者的所有属性以及在帖子和评论上重用作者模型。至少在理论上,我认为这是有道理的。

但是,像这样设置我遇到了如何使用 Handlebars 检索不同值的困惑。Handlebars 不喜欢从我读过的内容中传递对象。我可以轻松地检索状态{{#each}}{{status}}但自然{{author.name}}不会工作。

我已经研究过使用 Helper,但是正如您所见,我在其中嵌套了评论,其中将嵌套另一个作者。我不相信助手内部的助手会起作用。

这是从 Chrome 控制台中提取的示例对象。

Object {items: Array[2]}
    +items: Array[2]
        +0: Object
            +author: child
                _changing: false
                _pending: false
                _previousAttributes: Object
                +attributes: Object
                    name: "Amy Pond"
                    profileImage: "Amy.jpg"
                    __proto__: Object
                changed: Object
                cid: "c0"
                __proto__: Surrogate
            comments: child
            id: "50f5f5d4014e045f000001"
            status: "1- This is a sample message."
            __proto__: Object
        +1: Object
            author: child
            comments: child
            id: "50f5f5d4014e045f000002"
            status: "2- This is another sample message."
            __proto__: Object
            length: 2
            __proto__: Array[0]
            __proto__: Object

我在我的组织中是不正确的,还是有更好的方法来处理多维数据?或者有没有一种很好的方式让 Handlebars 获得每个值?

如果有更强大的模板引擎,我可以选择。

4

1 回答 1

6

似乎问题在于您将 Backbone 模型直接放入模板中,但您必须先使用model.toJSON(). 或者你尝试访问author.attributes.name.

文档

Handlebars 还支持嵌套路径,从而可以查找嵌套在当前上下文下方的属性。

<div class="entry">
  <h1>{{title}}</h1>
  <h2>By {{author.name}}</h2>

  <div class="body">
    {{body}}
  </div>
</div>

该模板适用于此上下文

var context = {
  title: "My First Blog Post!",
  author: {
    id: 47,
    name: "Yehuda Katz"
  },
  body: "My first post. Wheeeee!"
};
于 2013-08-20T18:56:19.783 回答