无法访问模板中模型对象的嵌套节点数据

时间:2013-09-02 15:34:30

标签: ember.js handlebars.js

我已发布我的代码here。 在这里,我得到home_products的第一个节点的数据,即

    "contents": [
        {
            "id": "1",
            "product_name": "abc11"
        },
        {
            "id": "2",
            "product_name": "abc12"
        }
    ]

无法获取第二个节点的数据,即

    "contents": [
        {
            "id": "1",
            "product_name": "abc21"
        },
        {
            "id": "2",
            "product_name": "abc22"
        }
    ]

每次我获得相同的数据,即第一个节点的数据。

任何人都可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

您的FIXTURES被错误地嵌套,您应该只有一个contents数组,从而导致:

Astcart.Application.FIXTURES=[
{
    "home_products": [
        {
            "id": "1",
            "name": "Mobiles & Accessories",
            "contents": [
                {
                    "id": "1",
                    "product_name": "abc11"
                },
                {
                    "id": "2",
                    "product_name": "abc12"
                },
                {
                    "id": "3",
                    "product_name": "abc21"
                },
                {
                    "id": "4",
                    "product_name": "abc22"
                },
                {
                    "id": "5",
                    "product_name": "abc31"
                },
                {
                    "id": "6",
                    "product_name": "abc32"
                }
            ]
        }
    ]
}
];

Working example

希望它有所帮助。

更新

它表明每个contents内的嵌套home_product数组需要不同的id,尽管它们处于隔离数组中,否则它们会被视为一个并被覆盖:

更新了FIXTURES

Astcart.Application.FIXTURES = [
  {
    "id": "1",
    "name": "Application 1",
    "home_products": [
      {
        "id": "1",
        "name": "Mobiles & Accessories",
        "contents": [
            {
                "id": "1",
                "product_name": "abc11"
            },
            {
                "id": "2",
                "product_name": "abc12"
            },
            {
                "id": "3",
                "product_name": "abc21"
            },
            {
                "id": "4",
                "product_name": "abc22"
            },
            {
                "id": "5",
                "product_name": "abc31"
            },
            {
                "id": "6",
                "product_name": "abc32"
            }
        ]
      },
      {
        "id": "2",
        "name": "Bags & Cases",
        "contents": [
            {
                "id": "7",
                "product_name": "def11"
            },
            {
                "id": "8",
                "product_name": "def12"
            },
            {
                "id": "9",
                "product_name": "def21"
            },
            {
                "id": "10",
                "product_name": "def22"
            },
            {
                "id": "11",
                "product_name": "def31"
            },
            {
                "id": "12",
                "product_name": "def32"
            }
        ]
      }
    ]
  }
];

Udpated Index template

<script type="text/x-handlebars" data-template-name="index">
  <ol>
    {{#each application in model}}
      <li>{{application.name}}</li>
        <ul>
          {{#each homeproduct in application.home_products}}
            <li>{{homeproduct.name}}</li>
              <ul>
                {{#each item in homeproduct.contents}}
                  <li>{{item.product_name}}</li>
                {{/each}}
              </ul>
          {{/each}}
        </ul>
    {{/each}}
  </ol>
</script>

Updated jsfiddle.