如果您想僅基於模型屬性計算某些內容,則應使用計算屬性。在下面的例子中,我定義了一個計算的屬性citiesString
:
import DS from 'ember-data';
import Ember from 'ember';
export default DS.Model.extend({
name: DS.attr('string'),
cities: DS.hasMany('city', { async: false }),
citiesString: Ember.computed('cities', function() {
var cities = [];
this.get('cities').forEach(function (item, index, enumerable) {
cities.push(item.get('name'));
}, this);
return cities.join(', ');
})
});
您可以使用計算屬性像任何其他:如果你想使用元素的索引
{{#each elements as |element index|}}
{{element.citiesString}}
{{/each}}
(如果我沒有理解「元素序列」右) ,除了編寫一個幫助器之外,我無法想象其他方式,傳遞給它元素,索引和返回ID。助手的例子:
//app/helpers/my-helper.js
import Ember from 'ember';
export default Ember.Handlebars.makeBoundHelper(function (element, index) {
return index; //do something useful instead of this
});
如何使用它:
{{#each elements as |element index|}}
{{my-helper element index}}
{{/each}}
你應該記住,指數可以改變(如可以訂購數組元素)和不同的用戶可能會看到不同的ID相同的元素。