以下是基本的余烬模型:
App.Person = DS.Model.extend({
firstName: DS.attr('string'),
birthday: DS.attr('date'),
day1: DS.attr('string'),
day2: DS.attr('string'),
day3: DS.attr('string')
});
出于这个例子的目的,如果我的日子达到50天怎么办?而不是一行一行...第4天,第5天,第6天......有没有办法动态循环?我的第一直觉是使用MIXIN,然后将它们推到物体上,但我不认为如果我有计算属性它会起作用:
isHoliday: function(){
if(this.get('day1') == 'off'){
return true;
}
}.property('day1'),
考虑到这个'在那里,我们有回报,我不相信你可以简单地推动'这个到模型上生成这样的东西:
App.Person = DS.Model.extend({
firstName: DS.attr('string'),
birthday: DS.attr('date'),
day1: DS.attr('string'),
day2: DS.attr('string'),
day3: DS.attr('string'),
isHoliday: function(){
if(this.get('day1') == 'off'){
return true;
}
}.property('day1')
});
答案 0 :(得分:2)
这是一种奇怪的方法,但仍有可能:
var defaults = {
firstName: DS.attr('string'),
birthday: DS.attr('date'),
isHoliday: function(){
if(this.get('day1') == 'off'){
return true;
}
}.property('day1')
}
var dayProps = {};
var count = 20;
while(count--){
dayProps['day' + (count + 1)] = DS.attr('string');
}
App.Person = DS.Model.extend(Ember.merge(defaults, dayProps));
使用动态道具进行定义,最好定义Day
模型并与Person
建立一对多关系:
App.Person = DS.Model.extend({
days: DS.hasMany('day')
});
App.Day = DS.Model.extend({
person: DS.belongsTo('person')
});