2011-11-21 36 views
1

我有一个项目列表,每个项目可以有一个Photo项目或不。Handlebarsjs对象数组:类型错误:无法读取属性'ID'的未定义

我正在循环使用this

这是罚款时,所有项目都有一个Photo

<script id='library-template' type="text/x-handlebars-template"> 
    {{#this}} 
     <div class='box'> 
      <a href='#insight' data-insight_id="{{Item.id}}"> 
      {{#if Photo.0.id }} 
        {{Photo.0.photo}} 
      {{/if}} 
      </a> 

      <div class='subtitle'> 
       <h2>{{Item.title}}</h2> 
       <p>Added: {{Item.created}}</p> 
      </div> 
     </div> 
    {{/this}} 
</script> 

当当前对象没有照片对象:

TypeError: Cannot read property 'id' of undefined

我的对象的格式:

[ 
Object 
    Item: Object 
    Photo: Array[1] 
    Rating: Array[0] 
    Tag: Array[0] 
    __proto__: Object 
, 
Object 
    Item: Object 
    Photo: Array[0] 
    Rating: Array[0] 
    Tag: Array[0] 
    __proto__: Object 
, 
Object 
, 
Object 
, 
Object 
] 

第二个对象没有Photo记录所有其他对象这样做。

如何访问照片对象,确保在照片没有内容时不会出现错误?

注意:测试{{#if Photo.0}}而不是{{#if Photo.0.id}}结果:
错误:解析第5行的错误:...}“> {{##如果照片0}} {{照片0 ---------------------- ^期待'ID'

+0

修正:万一有人在这里添加在同一个问题上运行:\t \t \t \t {{#如果Photo.length}} \t \t \t \t \t \t {{Photo.0.photo}} \t \t \t \t {{/如果}} – Wils

回答

4

放在这里以防别人需要:

{{#if Photo.length}} {{Photo.0.photo}} {{/if}} 
相关问题