3

假设我有以下对象:

image: {
  size: {
    l: {
      url: 'l.jpg',
    },
    m: {
      url: 'm.jpg',
    },
    s; {
      url: 's.jpg',
    }
  }
},
mySize: 'm'

如果我想在我的模板中获取相应的图片 url,我应该怎么做?我试过:

{{get image mySize 'url'}}

但它不起作用。

我可以这样输入我想要的网址:

{{get (get image mySize) 'url')}}

然而,这是一个非常不直观且丑陋的解决方法。有没有更好的方法?谢谢你。

4

1 回答 1

3

您需要与它一起使用 concat 助手:

{{get image (concat 'size.' mySize '.url')}}

但这听起来像是计算属性的工作:

imageUrl: Ember.computed('mySize', 'image.size', function() {
  let { image, mySize } = this.getProperties('image', 'mySize');
  return Ember.get(image, `size.${mySize}.url`);
})

这样你就可以{{imageUrl}}在模板中使用。

余烬玩弄

于 2016-08-24T07:28:31.000 回答