У меня есть schemas, чтобы я мог иметь массив комплексных наборов ввода через autoform. Что-то вроде:Boolean во вложенной схеме, вызывающей требуемое состояние
address = {
street:{
type: String
},
city: {
type: String
},
active_address: {
type: Boolean,
optional: true
},
...
}
people: {
name:{
type: String
},
address:{
type: [address],
optional: true,
defaultValue: []
}
}
Таким образом, добавление адреса не является обязательным, но если добавить адрес все поля адреса не требуется.
Попытка отправить форму порождает требуемую ошибку для каждого поля под «адресом», за исключением Boolean
, даже если флажок не установлен.
Для справки, я создаю форму как таковую:
{{#autoForm collection="people" id=formId type="insert" doc=getDocument autosave=true template="autoupdate"}}
{{> afQuickField name='name' template="autoupdate" placeholder="schemaLabel"}}
{{> afQuickField name='address' template="autoupdate"}}
...
{{/autoForm}}
Я использую шаблоны форм очень сильно на основе шаблонов bootstrap3
форм, которые приходят с AutoForm.
Пробовал
пытался добавить крючок так:
formToDoc:function(doc, ss, formId){
for (var i = 0, l = doc.address.length; i < l; ++i){
if (!doc.address[i].active_address){
delete doc.address[i].active_address;
};
}
return doc;
}
который решает проблему представить, но до сих пор вставляет массив полный пустых строк ""
для других значений. Это приводит к тому, что форма обновления переходит в режим haywire, аналогично тому, что показано в моем other question.
Проблема в том, что массив не пуст, но вместо этого имеет объект пустых значений. Вероятно, я мог бы пробежать все значения в форме и удалять все поля, но это очень опасно и дорого.