Eki*_*bal 2 ember.js ember-data ember-cli
我使用的灰烬2.5.0,我有两个型号service和availability它看起来像:
// availability
import DS from 'ember-data';
export default DS.Model.extend({
day: DS.attr('string'),
enabled: DS.attr('boolean'),
startAt: DS.attr('string'),
endAt: DS.attr('string'),
service: DS.belongsTo('service')
});
Run Code Online (Sandbox Code Playgroud)
和service它看起来像:
import DS from 'ember-data';
export default DS.Model.extend({
name: DS.attr('string'),
description: DS.attr('string'),
availabilities: DS.hasMany('availability',
{
defaultValue:
[
{
day: 'saturday',
enabled: false,
startAt: '',
endAt: ''
},
{
day: 'sunday',
enabled: false,
startAt: '',
endAt: ''
}
]
}
)
});
Run Code Online (Sandbox Code Playgroud)
你可以看到我试图使用defaultValue但没有运气.对于新路线,如果我们要创建新service记录,我想设置默认值.
任何帮助表示赞赏.
DS.hasMany只接受两个属性的参数哈希:async和inverse.但它不接受defaultValue财产.(来源).
但不要害怕,Eki Eqbal!我认为你可以通过使用模型的ready()钩子来完成类似的事情.
import DS from 'ember-data';
export default DS.Model.extend({
name: DS.attr('string'),
description: DS.attr('string'),
availabilities: DS.hasMany('availability', { async: true }), // is the data loaded async?
ready() { // fires when the model is loaded from server or created locally
if (!!this.get('availabilities')) {
// don't set to defaults if availabilities is not null
return;
}
var saturday = this.store.createRecord('availability', {
day : 'saturday',
enabled : false,
startAt : '',
endAt : ''
});
var sunday = this.store.createRecord('availability', {
day : 'sunday',
enabled : false,
startAt : '',
endAt : ''
});
this.get('availabilities').pushObjects([saturday, sunday]);
}
});
Run Code Online (Sandbox Code Playgroud)