我正在加载多个模型(使用ArrayController),其中ember-data明显返回并为每个模型返回id,我正在显示一些基于它的动态地图内容,它通过didInsertElement
函数中的JS初始化。
所以我的hbs代码看起来像这样:
{{#each controller}}
....
<div class="map" {{bindAttr id="id"}}>
....
{{/each}}
这很好,但我的问题是,我不只是想要div ID的id-number,但我想要它带有静态前缀:例如。 user-{{id}}
。或者在我想要的不同路线上,例如news-{{id}}
有可能吗?
答案 0 :(得分:3)
假设您可以在模型数据中存储前缀,您可以为此用例创建一个计算属性:
App.User = DS.Model.extend({
...
prefixedId: function() {
return "user-" + this.get('id');
}.property('id')
});
App.News = DS.Model.extend({
...
prefixedId: function() {
return "news-" + this.get('id');
}.property('id')
});
然后使用computed属性:
{{#each controller}}
....
<div class="map" {{bindAttr id="prefixedId"}}>
....
{{/each}}