Описаны варианты задания значений по умолчанию в ember-flexberry-приложении.

Описание

Существуют разные подходы к заданию значения по умолчанию в Ember-приложениях.

Один из подходов - использование на уровне модели defaultValue.

Например:

var Model = BaseModel.extend({
  firstName: DS.attr('string', { defaultValue: 'Test2602' }),
  birthDate: DS.attr('date', {
    defaultValue() { return new Date(); }
  })
});

Задание значения по умолчанию на форме создания

Задание значения по умолчанию может происходить на форме создания в роуте в afterModel.

Например, требуется в свойство “датаПроекта” задать текущую дату.

import EditFormNewRoute from 'ember-flexberry/routes/edit-form-new';

export default EditFormNewRoute.extend({
  ...
  
  afterModel: function(model, transition) {
    var date = new Date();
    model.set('датаПроекта', date);
  }
});

Более сложный вариант - это когда значение по умолчанию требуется получить с сервера. Например, требуется указать текущего пользователя в свойство ‘зарегистрировал’. В этом случае потребуется делать ajax-запрос на сервер. Пусть серверный метод GetCurrentUser возвращает текущего пользователя, тогда код может быть следующим:

import Ember from 'ember';
import config from '../../config/environment';
import EditFormNewRoute from 'ember-flexberry/routes/edit-form-new';

export default EditFormNewRoute.extend({
  ...
  
  afterModel: function(model, transition) {
    var store = this.store;

    Ember.$.ajax({
      type: 'GET',
      async: false,
      url: config.APP.backendUrls.api + '/GetCurrentUser', // В "config.APP.backendUrls.api" записан путь до сервера.
      success: function(result) {
        if (result) {
          store.pushPayload('some-project-пользователь', result); // Сначала результат преобразуем в модельку, которую поймёт Ember.
          store.findRecord('some-project-пользователь', result.__PrimaryKey).then(function(person) {
            model.set('зарегистрировал', person); // Находим эту полученную модельку и записываем в требуемое свойство.
          });
        }
      }
    });
  }
});