блок (добавить ему псевдо-элемент (:before) и дать ему цвет + opacity)? Чтобы как-то при помощи Renderer2...При этом не использовать глобальный класс.
Как я понимаю, то псевдоэлемент, Renderer2 создать не может. А просто назначить без псевдоэлемента директивой через setStyle opacity блоку тоже не вариант... Так как при помощи директивы я еще добавляю спинер (компоненту его) посреди блока. Так я хочу сделать универсальный плелоадер – пока данные обновляются, то блок осветлен и крутится посредине спинер....
Да, навесьте класс
о прикольная идея
Если хочется избежать зависимости директивы от конкретного глобального css класса, можно 1. обернуть директиву в модуль 2. сделать forRoot в модуле 3. параметром forRoot будет принимать className 4. будет регистрировать переданный className по токену в провайдерах 5. Токен инжектится в директиву. Получаете className Получается более гибкая система, где ты не зависишь от конкретики. Больше прдходит для либ, чем для приложения. Но чтобы тимлид успокоился, можно сделать так
звучит интересно)) если он не назовет это "неочевидным")) спасибо
Кстати с помощью директивы лучше не добавлять спиннер. Внутри директив старайтесь работать только с хост элементом, не меняя структуру DOM. Ведь ты не знаешь, что там вокруг и какие стили применены к родителю. Лучше сделать компонент-обёртку.
спасибо. Я действительно начинал с компонента обретки. Но там столкнулся с другими проблемами. Я не могу в таком случае разместить спиннер посредине загружаемого блока. Это можно сделать только директивой – я даю блоку position:relative, а спиннеру абсолют. Компонент обертка способна вывести спиннер только над блоком, а не внутри него(( Как раз пришел с новым вопрос. Можно ли как-то директивой создать div обертку динамически над блоком, на который повешена директива? Создавать чайлды вообще без проблем через insertBefore... А вот создание враппера динамического решило бы мою проблему с глобальными стилями, возможно
Не понимаю. Как в директиве можно сделать то, что нельзя в компоненте? Компонент — это директива со своим шаблоном. Все те же самые стили на хост и на спинер вы можете сделать в компоненте, причём инкапсулированными классами, а не инлайн стилями.
тоже такие мысли только что в голову полезли) но я уже и сам запутался...))
Если делать компнент обертку для отображения formControl errors, то какую стратегию ему выбрать?
Default. Иначе не получить статус touched
А NgControl через ContentChild инжектить?
Можно через DI, провесив на него тот же formControl, мы так делаем.
https://taiga-ui.dev/components/field-error
Я посмотрел сорс код TuiFieldErrorComponent, для чего там пустой writeValue?
Без него интерфейс не будет реализован в полной мере и будет ошибка
Думал контрол просто через input передать
Если я правильно помню, то иначе контрол ругался, что не нашёл ControlValueAccessor, поэтому пришлось его интерфейс реализовать и себя назначить им: https://github.com/TinkoffCreditSystems/taiga-ui/blob/main/projects/kit/components/field-error/field-error.component.ts#L58
Так у тебя будет работать только для контрола, а не для ngModel, formControlName, formArray, formGroup
А NgControl это парент класс для всех директив
Обсуждают сегодня