#css #angular #typescript #calendar
#css #angular #typescript #Календарь
Вопрос:
Я использую компонент полного календаря для Angular и хочу настроить содержимое каждой ячейки даты в соответствии с различными условиями. Например, если дата неверна (у меня есть функция, которая проверяет дату), я хочу изменить цвет фона ячейки даты. В противном случае, если это допустимо, я хочу добавить кнопку плюс внутри, чтобы добавлять события. Кроме того, я хочу добавить пользовательские анимации и эффекты наведения.
Как я могу контролировать дату рендеринга?
Мне удается изменить цвет фона с dayCellDidMount
помощью hook:
dayCellDidMount: (arg) => {
if(!this.dateIsValid(arg.date, arg.isPast)){
arg.el.style.backgroundColor = "#eeeeee";
}
},
Я не думаю, что это лучший способ сделать это, и мне все еще не удается добавить кнопку «Плюс» внутри ячейки.
Может ли кто-нибудь добиться этого или чего-то подобного? Ваша помощь будет оценена, спасибо. Если вы знаете другой календарь для интеграции с Angular, который имеет эти функции, я открыт для предложений.
Комментарии:
1. Единственное, что вы могли бы сделать, это изменить className вместо определенного свойства css для сложного стиля, который может быть лучше
2. @JSmith Я пробовал это, но это переопределяет классы, которые уже установлены в <td>, такие как «fc-day», «fc-future» и т.д. Также у меня возникают проблемы со стилем при изменении представления месяца.
3. не могли бы вы создать stackblitz, чтобы воспроизвести проблему и добавить ее в свой пост, пожалуйста? также, возможно, если вы установите для свойств
!important
значение, у вас не будет этой проблемы переопределения. Лучшие.4. @JSmith
!important
ничего не изменяйте, потому что основная проблема заключается в том, что, например, исходный <td> имеет следующие классыfc-daygrid-day fc-day fc-day-wed fc-day-future
. После того, как я проверю дату, если я это сделаюarg.el.className = "day-disabled";
, <td> будет иметь толькоday-disabled
класс и потеряет остальные. Я хочу добавить этот класс и сохранить остальные. Кроме того, я не могу точно воспроизвести его с помощью stackblitz, потому что я управляю данными из баз данных. В принципе, если я использую className вместо style (помимо предыдущих проблем), стиль не отображается должным образом при смене месяцев.5. чтобы избежать удаления всех других классов, используйте render2 для использования
addClass
. это будет делать что-то вродеthis.renderer.addClass(element, 'my-class-name');
. также, если у вас проблема с css, это может быть связано с тем, что ваше добавление вашего класса на уровень wrng — это только предположение, но, по сути, если оно работает с element.style, это должно работать с чистым css. Для проблемы с базой данных просто используйте необработанный объект json, поскольку я полагаю, что вы извлекаете json из своего серверной части. Вместо этогоsubscribe
просто добавьте переменную с фиктивными данными. Лучшие