2013-02-12 46 views
1

我試圖渲染mediaitems在我post模板,但我發現這個討厭的控制檯錯誤:錯誤_create而在emberjs渲染屬於關聯孩子

Uncaught TypeError: Object photo has no method '_create'

這是我的模型&夾具數據:

/************************** 
* Models 
**************************/ 

App.Store = DS.Store.extend({ 
    revision: 11, 
    adapter: 'DS.FixtureAdapter' 
}); 



App.Mediaitem = DS.Model.extend({ 
    type: DS.attr('string'), 
    url: DS.attr('string'), 

    post: DS.belongsTo('App.Post') 
}); 



App.Post = DS.Model.extend({ 
    type: DS.attr('string'), 
    title: DS.attr('string'), 
    summary: DS.attr('string'), 
    body: DS.attr('string'), 
    date: DS.attr('date'), 

    mediaitems: DS.hasMany('App.Mediaitem', {embedded:true}) 
}); 

App.Post.FIXTURES = [ 
    { 
     id:"post-one", 
     type:"news", 
     title:"First Post", 
     summary:"Ipsum Lorem", 
     date:"2013-02-07T16:44:57", 
     mediaitems:[{ 
      id:593, 
      post_id:"post-one", 
      type:'photo', 
      url:'http://www.google.com' 
     }, 
     { 
      id:789, 
      post_id:"post-one", 
      type:'photo', 
      url:'http://www.google.com' 
     }] 
    }, 
    { 
     id:"post-two", 
     type:"gallery", 
     title:"Second Post", 
     summary:"Lorem ipsum", 
     date:"2013-02-07T16:44:57", 
     mediaitems:[{ 
      id:342, 
      post_id:"post-two", 
      type:'photo', 
      url:'http://www.google.com' 
     }, 
     { 
      id:231, 
      post_id:"post-two", 
      type:'photo', 
      url:'http://www.google.com' 
     }] 
    } 
]; 

這是我的模板代碼:

<script type="text/x-handlebars" data-template-name="post"> 
     <div class="detail"> 
      {{#linkTo posts}}close{{/linkTo}}<br/> 
      <h2>{{id}} - {{title}}</h2> 
      <br/> 
      {{#each mediaitem in mediaitems}} 
       print something 
      {{/each}} 
     </div> 
    </script> 

有人可以幫我嗎?

回答

1

FIXTURE適配器不支持嵌入式關係,至少在rev 11中不支持。 您需要每個模型都有自己的FIXTURE定義,記錄和關係具有適當的子/父母的ID。

App.Post.FIXTURES = [ 
{ 
    id:"post-one", 
    type:"news", 
    title:"First Post", 
    summary:"Ipsum Lorem", 
    date:"2013-02-07T16:44:57", 
    mediaitems:['593','789'] 
}, 
{ 
    id:"post-two", 
    type:"gallery", 
    title:"Second Post", 
    summary:"Lorem ipsum", 
    date:"2013-02-07T16:44:57", 
    mediaitems:['342','231'] 
}]; 

App.Mediaitems.FIXTURES = [{ 
     id:342, 
     post_id:"post-two", 
     type:'photo', 
     url:'http://www.google.com' 
    }, 
    { 
     id:231, 
     post_id:"post-two", 
     type:'photo', 
     url:'http://www.google.com' 
    }, 
    { 
     id:593, 
     post_id:"post-one", 
     type:'photo', 
     url:'http://www.google.com' 
    }, 
    { 
     id:789, 
     post_id:"post-one", 
     type:'photo', 
     url:'http://www.google.com' 
    }];