4

我正在使用backbone.js嵌套模型。這個想法是自我包含作者的所有屬性以及在帖子和評論中重新使用作者模型。至少在理論上這是有道理的,我會想。把手嵌套對象

但是,設置這樣的事情我遇到了一個混亂如何檢索與Handlebars不同的值。把手不喜歡從我讀過的東西中傳遞物體。我可以通過{{status}}輕鬆檢索{{#each}}中的狀態,但自然做{{author.name}}將不起作用。

我已經看過使用助手,但正如你所看到的,我有嵌套在裏面的評論,這將有另一個作者嵌套在裏面。我不相信助手內的傭工會工作。

這是從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獲得每個值?

如果有更強大的模板引擎,我是開放選項。

回答

5

似乎問題在於您將Backbone模型直接放入模板中,但必須先使用model.toJSON()將其轉換爲JSON對象。或者您嘗試訪問author.attributes.name

docs

把手也支持嵌套的路徑,使得能夠查找 屬性嵌套在當前上下文的下方。

<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!" 
};