如何为ember添加默认值有多少关系?

Eki*_*bal 2 ember.js ember-data ember-cli

我使用的灰烬2.5.0,我有两个型号serviceavailability它看起来像:

// 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记录,我想设置默认值.

任何帮助表示赞赏.

Pau*_*ver 5

DS.hasMany只接受两个属性的参数哈希:asyncinverse.但它不接受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)