获取嵌套对象时在hbs中获取帮助器



假设我有以下对象:

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

如果我想在我的模板中得到相应的图像url,我应该怎么做?我试着:

{{get image mySize 'url'}}

但是它不工作。

我可以通过这样输入得到我想要的url:

{{get (get image mySize) 'url')}}
然而,这是一个非常不直观和丑陋的解决方案。有没有更好的办法?谢谢你。

您需要同时使用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}}了。

安贝抚弄

最新更新