在我的服务器端,我有一个产品模型,其中包含一个名为'image'的属性,它是带有扩展名的图像的名称,我正在使用ember app kit,我将我的图像放在公共/资产中文件夹,我想引用它与文件名,以便它正确显示页面上的图像。因此,在我对ember的正确认识中,我创建了一个数组控制器(因为我正在使用一组产品)并且我接受了该属性,并在前面引用该路径时返回了一个字符串。但是我没有在页面上显示任何内容,甚至没有显示损坏的图像。
我已将此控制器放在控制器中并将其命名为products.js
var ProductsController = Ember.ArrayController.extend({
assetPath: function() {
alert(this.get('image'));
return '../assets/' + this.get('image');
}.property('image')
});
export default ProductsController;
我的模板只是在模板中,名为products.hbs,看起来非常基本
{{#each}}
<div class="item">
<h2>{{name}}</h2>
<p>{{price}}</p>
<p>{{image}}</p>
</div>
{{/each}}
首先,为什么在引用此属性时我没有得到任何东西?第二个是这样做的“余烬方式”还是应该在其他地方完成?
答案 0 :(得分:0)
刚发现这个堆栈溢出(不知道为什么我第一次搜索时没有转动)
Inserting a Model Property into an Img Element URL in Ember
我忘了你也可以在模型上定义这些。
所以我就这样做了......
var Product = DS.Model.extend({
...
image: DS.attr('string'),
assetPath: function(){
return "/assets/"+this.get('image');
}.property('image')
});