Size: a a a

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

2021 April 17

S

Smooth Operator in Angular - русскоговорящее сообщество
то что  выше, выглядит ужасно
источник

S

Smooth Operator in Angular - русскоговорящее сообщество
и на самом деле ты велосипедный DI придумываешь
источник

OP

Oleg P in Angular - русскоговорящее сообщество
решение какое предложишь? Что куда пробрасывать
источник

S

Smooth Operator in Angular - русскоговорящее сообщество
const BUTTON = new InjectionToken<Button>(...);
источник

S

Smooth Operator in Angular - русскоговорящее сообщество
по этому токену свои кнопки провайдишь, в компоненте инжектишь
источник

OP

Oleg P in Angular - русскоговорящее сообщество
я набор кнопок заранее не знаю - его создает фабрика по переданном типу. Допустим кнопки заинжектил - получил массив кнопок. Дальше как решается?
источник

S

Smooth Operator in Angular - русскоговорящее сообщество
провайдь фабрику кнопок)
источник

OP

Oleg P in Angular - русскоговорящее сообщество
класс команды в любом случае должен ссылаться на  логику - получателя команды. А команду надо как-то привязать к кнопке
источник

S

Smooth Operator in Angular - русскоговорящее сообщество
это уже реализация кнопки
источник

S

Smooth Operator in Angular - русскоговорящее сообщество
можешь комманды тоже в DI запихнуть
источник

S

Smooth Operator in Angular - русскоговорящее сообщество
и нужные инжектить в кнопке
источник

OP

Oleg P in Angular - русскоговорящее сообщество
как ты поступаешь когда нужно сгенерить несколько разных кнопок и показать их в шаблоне с разной реализацией клика? может я усложнил все имея бэкграудн бэкэнда
источник

OP

Oleg P in Angular - русскоговорящее сообщество
представь что пишешь библу - о ангуляре пока ничего не известно.
источник

OP

Oleg P in Angular - русскоговорящее сообщество
Редактор - который конфигурируем разный набор инструментов. Каждый имеет свою логику. Потом этот редактор можно заинжектить в ангуляр
источник

S

Smooth Operator in Angular - русскоговорящее сообщество
class MyCountorButton {
   constructor(private command: MyCountorCommand) {
   }
   
   click() {
       this.command.execute();
   }
}
источник

OP

Oleg P in Angular - русскоговорящее сообщество
согласен - так и делаю. Но MyCountorCommand зависит от concreteService - который и содержит всю логику.

В итоге выходит не очень красиво - ИМХО:

const myCountorCommand = new MyCountorCommand(new ConcreteService());
const myCountorButton = new MyCountorButton(myCountorCommand);
источник

S

Smooth Operator in Angular - русскоговорящее сообщество
положи комманду в di
источник

S

Smooth Operator in Angular - русскоговорящее сообщество
положи кнопку в di
источник

OP

Oleg P in Angular - русскоговорящее сообщество
Для того чтобы Ангуляр сам ее MyCountorButton собрал со всеми зависимостями?
источник

S

Smooth Operator in Angular - русскоговорящее сообщество
да
источник