#angular #angular-material #angular-formly #ngx-formly
#угловая #угловой-материал #угловато-форменный #ngx-formly
Вопрос:
У меня есть формальная форма со многими mat-inputs
(да, я использую Материал) внутри. Я хочу, чтобы у каждого из них была appearance=outline
причина, по которой я могу поместить ее внутрь templateOptions
каждого ввода. Но это не СУХО. Есть ли способ установить значение по умолчанию appearance
для каждого mat-input
из них в моем приложении и не указывать его в каждом входном описании?
UPD. Я использую компонент formly form следующим образом
<formly-form [form]="form" [fields]="fieldsDescription"></formly-form>
form
генерируется с помощью cycle ( fieldsDescription
перебора по массиву) и angular form builder. fieldsDescription
загружается из серверной части. Прямо сейчас я ввожу appearance=outline
каждый ввод. Так fieldsDescription
что это массив объектов, подобных следующему
{
"key": "field_key",
"type": "input",
"templateOptions": {
"label": "A label",
"appearance": "outline",
"placeholder": "",
"required": true
}
}
Комментарии:
1. Если вы хотите, вы можете использовать MAT_FORM_FIELD_DEFAULT_OPTIONS поставщика, см. docs: material.angular.io/components/form-field/overview
Ответ №1:
почему бы не использовать в качестве поставщика MAT_FORM_FIELD_DEFAULT_OPTIONS { внешний вид: ‘outline’ }? Я полагаю, вы хотите, чтобы все ваши вводные данные отображались в общих чертах. В вашем модуле
providers: [
{ provide: MAT_FORM_FIELD_DEFAULT_OPTIONS, useValue: { appearance: 'outline' } },
]
Ответ №2:
почему бы не использовать внутренний шаблон <mat-form-field appearance="outline">
? предполагая, что вы используете ngFor
там.
le:
fields: FormlyFieldConfig[] = [
{
key: 'Input',
type: 'input',
templateOptions: {
label: 'Input',
placeholder: 'Placeholder',
description: 'Description',
required: true,
appearance: 'outline',
},
},
];
для Formly вы можете использовать templateOptions
для определения контура внешнего вида в конфигурации полей формы. источник здесь
Комментарии:
1. Это не мой случай. Код формы выглядит следующим
<formly-form [form]="form" [fields]="fieldsDescription"></formly-form>
образом . Форма генерируется с помощью cycle и form builder, fieldsDescription тоже. Но я не занимаюсьmat-form-field
этим, это делается на стороне формы2. Я нашел кое-что, что может работать Формально. Ответ обновлен
3. Да, и именно так я делаю это прямо сейчас. Мой вопрос заключается в том, как я могу избежать написания
appearance: 'outline'
каждый раз. Это не СУХО. Не удается найти какие-либо настройки по умолчанию для компонентов в formly4. затем, я думаю, вам нужно предоставить еще немного кода. Как составлена ваша форма описания?