На момент написания этого поста свойство matTextareaAutosize
не встроено.
Создать собственный шаблон очень просто. Компонент выглядит так:
import { Component, OnInit, ViewChild } from '@angular/core';
import { FieldType } from '@ngx-formly/material';
import { MatInput } from '@angular/material';
@Component({
template: `
<textarea matInput
[id]="id"
[formControl]="formControl"
[errorStateMatcher]="errorStateMatcher"
[cols]="to.cols"
[rows]="to.rows"
[placeholder]="to.placeholder"
[formlyAttributes]="field"
[matTextareaAutosize]="true"
>
</textarea>
`
})
export class TextareaAutoResizeComponent extends FieldType implements OnInit {
@ViewChild(MatInput) formFieldControl: MatInput;
ngOnInit() {
}
}
Затем определите const для конфигурации типа:
export const textAreaAutoResizeType = {
name: 'textarea-auto-resize',
component: TextareaAutoResizeComponent,
wrappers: ['form-field']
};
Наконец, зарегистрируйте тип в модуле:
imports: [
FormlyModule.forRoot({
types: [textAreaAutoResizeType]
})
],
Используйте это следующим образом:
{
key: 'note',
type: 'textarea-auto-resize',
templateOptions: {
label: 'Note'
}
},