Возможно, вы столкнулись с проблемой инкапсуляции представления.
ngx-datatable использует стиль ViewEncapsulation.None. Вы можете добавить определение стиля .my-custom-cell в ./src/styles.(s)css или также установите для инкапсуляции компонента значение Нет.
Вы можете проверить детали просмотреть инкапсуляцию из руководства по angular, если вы не знаете о это уже.
Изменить (ответ для Комментарий Тома)
Мне тоже не нужно такое решение, но, к сожалению, похоже, так оно и есть ... Я подготовил демонстрационное приложение, которое показывает то, что я пытаюсь сказать.
.my-custom-cell назначена столбцу имени.
.my-custom-cell-global, назначенный столбцу пола.
./app/demo-component.ts
<ngx-datatable-column name="name" [cellClass]="'my-custom-cell'">
<ng-template ngx-datatable-cell-template let-value="value">
{{value}}
</ng-template>
</ngx-datatable-column>
<ngx-datatable-column name="gender" [cellClass]="'my-custom-cell-global'">
<ng-template ngx-datatable-cell-template let-value="value">
{{value}}
</ng-template>
</ngx-datatable-column>
./app/demo-component.scss
.my-custom-cell {
background: red;
}
./styles.scss
.my-custom-cell-global {
background: #e6f2ff;
}
Как видите, красный фон не назначен столбцу имени. Но столбец пола получает синий цвет фона.
Это потому, что инкапсуляция представления сообщает cli о необходимости компиляции класса .my-custom-cell, как показано ниже:
.my-custom-cell[_ngcontent-c176]{background:red}
Но DATA с использованием а>. Если вы проверите одну из ячеек в столбце name, вы увидите, что ячейка datatable-body-cell, имеющая класс .my-custom-cell, не имеет атрибута [_ngcontent-c176]. Так что класс не применяется.
Если вы раскомментируете
person
Halil İbrahim Karaalp
schedule
09.11.2017