4

중첩 된 모델과 함께 backbone.js를 사용하고 있습니다. 이 아이디어는 작성자의 모든 속성을 자체적으로 포함 할뿐 아니라 게시물 모델 및 주석 모두에서 작성자 모델을 재사용합니다. 적어도 이론적으로 이것은 생각할 가치가 있습니다.핸들 막대 중첩 된 객체

그러나 이처럼 설정하면 Handlebars로 다른 값을 검색하는 방법에 혼란을 겪습니다. 핸들 막대는 내가 읽은 것에서 전달 된 객체를 좋아하지 않습니다. 나는 의 상태를 {{status}}으로 쉽게 찾을 수는 있지만 자연스럽게 {{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 
내 조직의

오전에 내가 잘못, 또는 있는가? 아니면 핸들 바가 각각의 값을 얻는 좋은 방법이 있습니까?

더 강력한 템플릿 엔진이있는 경우 열린 옵션입니다.

답변

5

백본 모델을 템플릿에 직접 삽입했지만 먼저 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!" 
}; 
에 맞는지