Pull to refresh
2
0
Алексей @alexey-ovsyanikov

User

Send message

Да. Согласен. Применять их налево и направо не стоит, но знать и помнить о ней нужно

Я не уверен, что хорошая практика писать компонент ради компонента. Но решение имеет место быть. Основной посыл статьи возможно не передал ( первый раз писал ) , но он был в том, что не стоит забывать о декораторах и просто иметь в виду, что они могут реально помочь )

Одно из возможных решений - это атрибут директива, в которую можно было бы переместить логику по управлению состоянием disabled. Но методов по управлению данно»мы состоянием у PrimeNG через ElementRef нет (Мы можем получить через DI сам компонент прайма - кнопку). Я не говорю, что это решение правильное. Проблемы здесь возникли из-за использования click, а не onClick. Но есть и вторая - большое условие для состояния disabled.

Сам Input-параметр есть и он работает отлично. Но если вы захотите им управлять через директиву, к примеру, не выйдет. Имелось ввиду под АПИ - набор методов, если Вы сможете зацепить его как ElementRef, через директиву и туда перенести логику, связанную с disabled.

click - это одна из проблем. Действительно такой EventEmitter, как onClick, есть, но что делать с большими и повторяющимися условиями для disabled? Данный emitter не покрывает этот кейс, а только отсекает сам клик. Я предложил нестандартное решение через декоратор. Использовать его или нет - дело Ваше.

Простите, не совсем понял

Дело в том, что PrimeNG не дает нормального АПИ для работы с флагом disabled. В статье упомянул об этом

Не помогает. Клики будут все равно проходить

Да, имеет место быть, но я не люблю прокидывать функции в компоненты, а ваше решение это предполагает. На счет сохранения конечного типа - надо подумать. Просто декораторы в ngxs не контролируют конечные типы. Это уже наша ответственность )

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity

Specialization

Frontend Developer, Software Architect
Lead
JavaScript
Adaptive layout
SASS
HTML
CSS
Angular
LESS
SCSS
BEM
TypeScript