Ember加载异步属性

时间:2014-09-29 16:06:10

标签: ember.js

在我的ember应用程序中我想加载图像。我的模型有几个图像,所以我把它们装入异常。

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

每个'foto'对文件位置'fileName:DS.attr()'都有一个proptery。现在,在我的路线控制器中需要扩展路径以将图像加载为背景图像:

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或path包含图像的正确路径。在我的模板中,当我尝试使用{{loadImage}}呈现它时,它永远不会出现。我怎么能改变它?

1 个答案:

答案 0 :(得分: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')