2014-09-29 83 views
1

在我烬程序,我想加载图像。我的模型具有多个图像,因此我将它们异步加载。灰烬负载async属性

fotos: DS.hasMany('foto', { async: true }) 

每个 '照片' 具有proptery到文件位置 '文件名:DS.attr()'。现在,我需要路由的控制器扩展路径加载图像作为背景图片:

loadImage: function(){ 
    var path; 
    this.get('model').forEach(function(art){ 
     art.get('fotos').then(function(fotos){ 
      path = fotos.get('content')[0].get('fileName'); 
     }) 
    }); 
    return "background-image:url(" + path +")"; 
}.property() 

(日志称)的LoadImage或路径包含图像的正确路径。在我的模板中,当我尝试使用{{loadImage}}进行渲染时,它从不出现。我该如何改变它?

回答

0

路径被异步设置,并且会立即返回空值。

firstImagePath: Em.computed.alias('firstObject.fotos.fileName'), // this assumes you're in an ArrayController 

loadImage: function(){ 
    var path = this.get('firstImagePath'); 
    return "background-image:url(" + path +")"; 
}.property('firstImagePath') 
+0

许多感谢您的回答。我已经尝试过,因为我需要另一个模板中的别名。图像呈现在那里,但在(阵列)控制器的firstImagePath总是空:( – HappyCoder 2014-09-30 08:09:13