Size: a a a

Angular Material — русскоговорящее сообщество

2020 March 30

ЭП

Эрик Поуль in Angular Material — русскоговорящее сообщество
источник

B

Bretbas in Angular Material — русскоговорящее сообщество
Эрик Поуль
ты не можешь повесить на див disable, поэтому ты создаешь из дива - формКонтрол, и програмно ему указываешь disable или enable, что в свою очередь вызовет setDisabledState()
блин, я не вешаю на div [disabled]
источник

B

Bretbas in Angular Material — русскоговорящее сообщество
я вешаю на свой контрол его
источник

ЭП

Эрик Поуль in Angular Material — русскоговорящее сообщество
контрол в твоем случае - это компонент, а его темплейт - по сути див
источник

ЭП

Эрик Поуль in Angular Material — русскоговорящее сообщество
ControlValueAccessor дает возможность реализовать поведение инпута или селекта для обычного компонента, но не делает его инпутом или селектом
источник

B

Bretbas in Angular Material — русскоговорящее сообщество
Эрик Поуль
контрол в твоем случае - это компонент, а его темплейт - по сути див
блин, тогда если я управлять включенностью могу только через FormControl, то нахрена мне это?
Я тогда сделаю переменную disabled в своем CVA как @Input, и привяжусь к ней
источник

B

Bretbas in Angular Material — русскоговорящее сообщество
потому что включенность/отключенность в моем случае реально происходит только на view'шке.
источник

ЭП

Эрик Поуль in Angular Material — русскоговорящее сообщество
Bretbas
блин, тогда если я управлять включенностью могу только через FormControl, то нахрена мне это?
Я тогда сделаю переменную disabled в своем CVA как @Input, и привяжусь к ней
дело в том как ты используешь компонент
источник

ЭП

Эрик Поуль in Angular Material — русскоговорящее сообщество
без ControlValueAccessor ты не сможешь использовать компонент как контрол формы
источник

B

Bretbas in Angular Material — русскоговорящее сообщество
Эрик Поуль
без ControlValueAccessor ты не сможешь использовать компонент как контрол формы
да, я знаю)
источник

B

Bretbas in Angular Material — русскоговорящее сообщество
короче, сделал свойство @Input() disabled: boolean;
источник

ЭП

Эрик Поуль in Angular Material — русскоговорящее сообщество
Bretbas
блин, тогда если я управлять включенностью могу только через FormControl, то нахрена мне это?
Я тогда сделаю переменную disabled в своем CVA как @Input, и привяжусь к ней
лучше через FormControl, потому что тебе не нужно в темплейте описывать оутпут, а в классе просто подписаться на valueChanges, если все правильно описал
источник

ЭП

Эрик Поуль in Angular Material — русскоговорящее сообщество
Bretbas
короче, сделал свойство @Input() disabled: boolean;
если делаешь так, то лучше убери реализацию valueAccessor, потому что это не очень
источник

B

Bretbas in Angular Material — русскоговорящее сообщество
Эрик Поуль
если делаешь так, то лучше убери реализацию valueAccessor, потому что это не очень
понимаешь в чем дело.
Отключение/включение контрола зависит от toggle-button. Не более того.
Тоесть это реально логика Представления!

А значит, я ее могу реализовать только в разметке, указав ссылку на toggle-button (#filter), и сделав [disabled]="!filter.checked"

Нахрена мне эту логику нести в код компонента?

А CVA реализация для этого компонента мне нужна для того, чтобы забрать выбранные пункты категорий
источник

B

Bretbas in Angular Material — русскоговорящее сообщество
Но, чтобы не обманывать себя, я эту переменную @Input() disabled: boolean; , также изменяю в setDisabledState(..), если когда нибудь понадобиться управлять включенностью/отключенностью через FormControl
источник

ЭП

Эрик Поуль in Angular Material — русскоговорящее сообщество
Bretbas
понимаешь в чем дело.
Отключение/включение контрола зависит от toggle-button. Не более того.
Тоесть это реально логика Представления!

А значит, я ее могу реализовать только в разметке, указав ссылку на toggle-button (#filter), и сделав [disabled]="!filter.checked"

Нахрена мне эту логику нести в код компонента?

А CVA реализация для этого компонента мне нужна для того, чтобы забрать выбранные пункты категорий
по хорошему темплейт не должен заниматься логикой, он должен сказать что  кнопка нажалась и что пора работать ts-у
источник

B

Bretbas in Angular Material — русскоговорящее сообщество
Эрик Поуль
по хорошему темплейт не должен заниматься логикой, он должен сказать что  кнопка нажалась и что пора работать ts-у
ну я могу тут поспорить
источник

B

Bretbas in Angular Material — русскоговорящее сообщество
смотря какая логика
источник

B

Bretbas in Angular Material — русскоговорящее сообщество
логика тоже бывает разная.
источник

B

Bretbas in Angular Material — русскоговорящее сообщество
Тут я вижу, реально, логику Представления
источник