2016-01-29 88 views
0

綁定到一個模型關係屬性失敗失敗,如下面所示:綁定到模型關係屬性在每個幫助的每個幫助

這裏是我的模型:

//app/models/category.js 
export default DS.Model.extend({ 
    name: DS.attr(), 
    image: DS.belongsTo('image', { async: true }), 
}); 

//app/models/image.js 
export default DS.Model.extend({ 
    name: DS.attr('string'), 
    thumbfullfilepath: DS.attr('string'), 
    category: DS.belongsTo('category', { async: true }) 
}); 

當我運行的類別在下面的每一個把手幫助檢索圖像標記的「thumbfullfilepath」的模式,沒有值被綁定到IMG SRC:

{{#each model as |category|}} 
    <div class="small-element item"> 
     <div class="cat-name"><a href="#">{{category.name}}</a></div> 
     <div class="cat-name edit">{{#link-to 'admin.categories.edit' category}}Edit{{/link-to}}</div> 
     <span class="entry-thumb"> 
      <img src={{category.image.thumbfullfilepath}} alt=""> 
     </span> 
    </div> 
{{/each}} 

不過,我已經驗證了關係綁定在顯示單個模型時起作用,因爲當我訪問加載單個類別模型的「admin.categories.edit」路由時,會檢索{{category.image.thumbfullfilepath}}路徑並將其反映到模板中。這使我相信,出於某種原因,模板中的每個句柄幫助器中的模型關係綁定都會失敗。

會有人在這裏說一些光。

##已經爲我

工作的解決方案,我創建了一個圖像組件「形象原子」,其component.js是如下:

//pods/components/image-atom.js 
export default Ember.Component.extend({ 
    tagName: 'img', 
    attributeBindings: ['src', 'alt'], 
    alt: '', 
    src: Ember.computed(function() { 
    this.get('source').then((image) => { 
     this.set('src', image.get('thumbfullfilepath')); 
    }); 
    return null; 
    }) 
}); 

我用像這樣在這裏的下方,它的工作原理但感覺哈克:

{{#each model as |category|}} 
    <div class="small-element item"> 
     <div class="cat-name"><a href="#">{{category.name}}</a></div> 
     <span class="entry-thumb"> 
      {{image-atom source=category.image alt=""}} 
     </span> 
    </div> 
{{/each}} 

這裏下面是環境的詳細信息:

  • 燼CLI版本: 「2.2.0-beta.2」
  • 燼數據: 「^ 2.2.1」
  • 燼: 「2.2.0」
  • 節點: 「0.12.7」
  • 故宮: 「2.14.10」
  • OS: 「達爾文64埃爾卡皮坦」

讓我知道。

回答

2

你可能會有更好的時間在你周圍簡單地包裹{{if幫手圖片。

<span class="entry-thumb"> 
    {{#if category.image.thumbfullfilepath}} 
    <img src={{category.image.thumbfullfilepath}} alt=""> 
    {{/if}} 
</span> 

的問題很可能是image.thumbfullfilepath沒有解決之前的圖像試圖渲染,原因是其是一個異步的承諾。

編輯:對於記錄,在您的示例中使用計算屬性中的承諾是不推薦的。這可能比任何事情都更令人頭痛。

+0

非常感謝您的回覆。將嘗試你的解決方案,回來並將其標記爲答案。但是,快速的一個,不應該處理欄模板綁定應該自動更新關係屬性?關於使用計算屬性中的承諾。我同意,我不得不放棄計算的屬性解決方案,因爲它給出了間歇結果,並選擇側載相關的圖像模型,它似乎工作。將回到你這一個。 – Masita

+0

剛剛驗證您的解決方案的作品。非常感謝再次! – Masita