Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ember.js 获取嵌套对象时在hbs中获取辅助对象_Ember.js_Handlebarshelper - Fatal编程技术网

Ember.js 获取嵌套对象时在hbs中获取辅助对象

Ember.js 获取嵌套对象时在hbs中获取辅助对象,ember.js,handlebarshelper,Ember.js,Handlebarshelper,假设我有以下对象: 图像:{ 尺寸:{ l:{ url:'l.jpg', }, m:{ url:'m.jpg', }, s{ url:'s.jpg', } } }, 神秘化:“m” 如果我想在我的模板中获得相应的图像url,我应该怎么做? 我试过: 但它不起作用 我可以通过如下方式键入所需的url: {{get (get image mySize) 'url')}} 然而,这是一个非常不直观和丑陋的解决办法。有没有更好的办法?谢谢。您需要同时使用concat帮助程序: {{get image

假设我有以下对象:

图像:{
尺寸:{
l:{
url:'l.jpg',
},
m:{
url:'m.jpg',
},
s{
url:'s.jpg',
}
}
},
神秘化:“m”
如果我想在我的模板中获得相应的图像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}


您可以自己写一封帮助信,感谢您的快速回复!我使用了concat助手方法,它很有效。Computed属性听起来是个好主意,但当我的模板中有一个each循环时,我不知道如何使用它。看这里的旋转:啊,如果你在项目上循环,你不能使用这样的计算属性,你必须制作一个组件,将信息传递给该组件,并让它处理url,如果这就是你所做的,听起来有点过分了。我同意。我不想让一个组件来处理这么小的事情,一个get-concat组合就可以了。在我看来,Ember团队应该让get助手接受2个以上的参数,这样每个人都会非常简单和直观。再次感谢你的帮助!
imageUrl: Ember.computed('mySize', 'image.size', function() {
  let { image, mySize } = this.getProperties('image', 'mySize');
  return Ember.get(image, `size.${mySize}.url`);
})