Из источника , если вы видите, что селектор директивы может использоваться как элемент mat-table
или как атрибут таблицы table[mat-table]
@Component({
...
selector: 'mat-table, table[mat-table]',
...
})
export class MatTable<T> extends CdkTable<T> {}
Опция 1 : mat-table
: Когда вы используете в качестве элемента, он использует свойства flex-box CSS для выравнивания ваших данных / таблицы, поэтому, когда у вас очень длинный текст, он не изменится автоматически, если не указано иное. Обратите внимание, что используя эту опцию, вы должны пойти на компромисс с rowspan
и colspan
, например, если возникнет необходимость, вы не можете разбить строки / столбцы
Stackblitz: https://stackblitz.com/edit/angular-prq2ju
Опция 2 : table[mat-table]
: Когда вы используете в качестве атрибута таблицы html, td автоматически изменяет размер своего содержимого, основываясь на ячейке, в свою очередь, на основе столбца. Таким образом, весь столбец получает ширину
Stackblitz: https://stackblitz.com/edit/angular-pxpwet
Современный подход состоит в том, чтобы использовать подход Option-1 CSS flex-box, но если высодержание в ячейке очень длинное, вы можете указать ширину столбца для большого числа, но если вы не хотите много хлопот, вы можете использовать его с HTML-таблицей Option-2 / tr / td