Size: a a a

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

2020 February 16

ДМ

Денис Макаров in Angular - русскоговорящее сообщество
Sergei Sergeevich
Нормально выглядит! Конфиг для ngx-formly туда клади. Callback на клик. Интересно, можно ли туда еше запихнуть шаблон для рендеринга?
если у меня будет 10 компонент, надо 10 калбеков из родителя класть?)
источник

DB

Dilame Bowzee in Angular - русскоговорящее сообщество
Денис Макаров
разная обработка при клике - это паттерн команда. Он довольно простой в реализации. Разные типы форм - звучит как динамические формы, которые можно строить по конфигу. Тут как вариант подойдет уже что-то готовое вроде ngx-formly, ну либо под ваши нужды можно что-то свое сделать
хмм.. invoker в данном случае - это родительский компонент?
А имплементировать интерфейс Command должны дочерние компоненты?
А как передавать вызов в дочерний?
источник

ДМ

Денис Макаров in Angular - русскоговорящее сообщество
Dilame Bowzee
хмм.. invoker в данном случае - это родительский компонент?
А имплементировать интерфейс Command должны дочерние компоненты?
А как передавать вызов в дочерний?
а зачем его передавать в дочерний? и что у вас в дочернем?
источник

DB

Dilame Bowzee in Angular - русскоговорящее сообщество
Денис Макаров
а зачем его передавать в дочерний? и что у вас в дочернем?
Ну вот есть PaymentListItemComponent - у него в шаблоне базовая инфа, а также свитчем дочерний тип рендерится.
При клике на родительский надо выполнить разные действия в зависимости от типа.
Вы предложили паттерн команда. Я вот пытаюсь понять - командой является класс дочернего компонента?
Или я вообще всё не так понял?
источник

DB

Dilame Bowzee in Angular - русскоговорящее сообщество
Либо класс команды вообще отдельно живёт?
источник

ДМ

Денис Макаров in Angular - русскоговорящее сообщество
Dilame Bowzee
Ну вот есть PaymentListItemComponent - у него в шаблоне базовая инфа, а также свитчем дочерний тип рендерится.
При клике на родительский надо выполнить разные действия в зависимости от типа.
Вы предложили паттерн команда. Я вот пытаюсь понять - командой является класс дочернего компонента?
Или я вообще всё не так понял?
тогда команда не целесообразна здесь, ее применяют обычно в тех случаях, когда надо отделить логику выполнения от вью. А у вас я так понял все связано. Но я не понимаю, почему обработка должна вестись при клике на родителя, а не ребенка
источник

DB

Dilame Bowzee in Angular - русскоговорящее сообщество
Денис Макаров
тогда команда не целесообразна здесь, ее применяют обычно в тех случаях, когда надо отделить логику выполнения от вью. А у вас я так понял все связано. Но я не понимаю, почему обработка должна вестись при клике на родителя, а не ребенка
Потому что ребёнок, кхм, очень маленький)
Родитель - mat-list-item, а ребёнок - просто небольшой кусок текста в нём.
источник

ДМ

Денис Макаров in Angular - русскоговорящее сообщество
в то же время, если хранить в родителе вью чайлд и описать общий интерфейс, то можно вызывать метод обработки в детях(как вам ваше уже писали). Тогда это ничем не будет отличаться от паттерна команды)
Описываете интерфейс детей, у них общий метод execute. И дергаете его при клике. А там уже логика ложится на компонент, который и отвечает за ее обработку
источник

DB

Dilame Bowzee in Angular - русскоговорящее сообщество
Денис Макаров
в то же время, если хранить в родителе вью чайлд и описать общий интерфейс, то можно вызывать метод обработки в детях(как вам ваше уже писали). Тогда это ничем не будет отличаться от паттерна команды)
Описываете интерфейс детей, у них общий метод execute. И дергаете его при клике. А там уже логика ложится на компонент, который и отвечает за ее обработку
А как определить ViewChild, что бы туда попал компонент, который был выбран в *ngSwitch?
источник

ДМ

Денис Макаров in Angular - русскоговорящее сообщество
Dilame Bowzee
А как определить ViewChild, что бы туда попал компонент, который был выбран в *ngSwitch?
как много у вас компонент планируется?
источник

DB

Dilame Bowzee in Angular - русскоговорящее сообщество
Денис Макаров
как много у вас компонент планируется?
Да не особо, 3-5
источник

ДМ

Денис Макаров in Angular - русскоговорящее сообщество
Dilame Bowzee
А как определить ViewChild, что бы туда попал компонент, который был выбран в *ngSwitch?
да тут так-же как и с обычными компонентами, только в качестве интерфейса можете определить тот общий, с методом execute
источник

DB

Dilame Bowzee in Angular - русскоговорящее сообщество
Денис Макаров
да тут так-же как и с обычными компонентами, только в качестве интерфейса можете определить тот общий, с методом execute
У каждого кейса свитча должно быть одинаковое имя? И тогда текущий кейс попадёт в ViewChild?
источник

ДМ

Денис Макаров in Angular - русскоговорящее сообщество
Dilame Bowzee
У каждого кейса свитча должно быть одинаковое имя? И тогда текущий кейс попадёт в ViewChild?
#название должно быть одинаковое конечно
источник

DB

Dilame Bowzee in Angular - русскоговорящее сообщество
Денис Макаров
#название должно быть одинаковое конечно
Звучит круто) Надеюсь работает. Спасибо!
источник

Ti

Time is the side effect in Angular - русскоговорящее сообщество
Денис Макаров
как много у вас компонент планируется?
Компонентов*?
источник

ДМ

Денис Макаров in Angular - русскоговорящее сообщество
Time is the side effect
Компонентов*?
источник

AO

Alex Orlovsky in Angular - русскоговорящее сообщество
добрый день. а есть какой-то способ заинжектить сервис в обычную функцию? например, дёрнуть апишку из кастомного оператора
источник

AK

Akop Kesheshyan in Angular - русскоговорящее сообщество
Alex Orlovsky
добрый день. а есть какой-то способ заинжектить сервис в обычную функцию? например, дёрнуть апишку из кастомного оператора
Если правильно понял задачу, можно сделать метод статичным и вызывать ее без инициализаций
источник

AO

Alex Orlovsky in Angular - русскоговорящее сообщество
Akop Kesheshyan
Если правильно понял задачу, можно сделать метод статичным и вызывать ее без инициализаций
да, можно сделать сервис и юзать его метод в качестве оператора, но тогда нужно будет сервис инжектить везде, где он используется. а идея была в том, чтобы импортировать обычную функцию
источник