Массив простой схемы Meteor не должен иметь defaultValue none

У меня есть форма для людей, чтобы создать событие, в котором позже будут участники, но не во время создания. При создании события не нужно добавлять участников, поэтому в автоформе не отображается поле участника:

createEvent.jade

template(name="createEvent")
  +quickForm(collection="Events" id="createEventForm" type="insert" fields="name,description,location")

Я считаю, что для отправки формы я должен убедиться, что все обязательные поля коллекции Events имеют значение, даже если это не указано в форме. Форма не будет отправлена ​​(кнопка «Отправить» не работает, я проверяю minimongol, чтобы убедиться, что записи нет), хотя я пытался добавить значение по умолчанию:

  crew: {
    type: [String],
    label: "Crew",
    defaultValue: ""
  },

и autoValue, где создатель добавляется как участник:

  crew: {
    type: [String],
    label: "Crew",
    autoValue: function() {
      return this.userId;
    },
  },

У меня была эта проблема минуту назад, когда я установил создателя события по умолчанию без поля формы, и теперь он работает:

  host: {
    type: String,
    label: "Host",
    autoValue: function() {
      return this.userId;
    },
  },

Но я не могу заставить этот массив работать по умолчанию. Я также пробовал defaultValue: "['']" и некоторые другие. Пока застрял, помогите..


person KindOfGuy    schedule 04.06.2015    source источник


Ответы (1)


Если вы хотите, чтобы создатель был добавлен в качестве участника по умолчанию, вы можете использовать это:

crew: {
    type: [String],
    label: "Crew",
    autoValue: function() {
        if( this.isInsert ) {
            return [ this.userId ]
        }
    }
}

Если вы хотите вставить пустой массив по умолчанию, попробуйте:

crew: {
    type: [String],
    label: "Crew",
    defaultValue: [],
    minCount: 0
}
person kaoskeya    schedule 05.06.2015
comment
Где что-то подобное задокументировано? Откуда мне знать, что в этом контексте пустой массив обозначается парой скобок без комментариев? Это синтаксис js? - person KindOfGuy; 05.06.2015
comment
В Vanilla JS [ ] означает пустой массив. - person kaoskeya; 05.06.2015