Size: a a a

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

2021 April 17

MA

Mr. Algernon in Angular - русскоговорящее сообщество
да, но я ведь могу c forkJoin также написать subscribe(([profileInfo, profileMedia]) => { ... }?
источник

O

Oleksii in Angular - русскоговорящее сообщество
Привет народ, мучаюсь с открытием tree-select. Нужно держать его открытым в дропдауне. От безнадеги создал вопрос на стековерфлоу https://stackoverflow.com/q/67136189/4311833
источник

D

Dmitry in Angular - русскоговорящее сообщество
да, там выход такой же будет
источник

MA

Mr. Algernon in Angular - русскоговорящее сообщество
спасибо
источник

YV

Yurii Veselov in Angular - русскоговорящее сообщество
isOpen  в true при инициализации поставьте. Должно открытым сразу быть
источник

O

Oleksii in Angular - русскоговорящее сообщество
Та пробовал, оно так не хочет
источник

O

Oleksii in Angular - русскоговорящее сообщество
Или не там леплю
источник

YV

Yurii Veselov in Angular - русскоговорящее сообщество
15 строчка в app.comp.ts
источник

YV

Yurii Veselov in Angular - русскоговорящее сообщество
c мобилы проверить не удобно
источник

O

Oleksii in Angular - русскоговорящее сообщество
не хочет
источник

YV

Yurii Veselov in Angular - русскоговорящее сообщество
Ща с ноута гляну
источник

AF

Alena Fevr in Angular - русскоговорящее сообщество
спасибо за ответ) но так не выходила ) я решила по другому совсем сделать)
источник

O

Oleksii in Angular - русскоговорящее сообщество
а его обещают задеприкейтить ?
источник

ЕУ

Евгений Удалов... in Angular - русскоговорящее сообщество
уже несколько лет обещают
источник

O

Oleksii in Angular - русскоговорящее сообщество
интересно
источник

OP

Oleg P in Angular - русскоговорящее сообщество
Кто хорошо разбирается в ООП?
Интересно Ваше мнение.

Есть несколько экземпляров кнопок:

class ContourButton implements Button {
   public icon: string = '';
   public title: string = 'Добавить';

   click(): void {}
}

class CutButton implements Button {
   public icon: string = '';
   public title: string = 'Вырезать';

   click(): void {}
}

let buttons = [new cutButton(), new ContourButton()];

После вывода кнопок на экране и клику я могу получить ссылку на саму кнопку и вызвать ее внутренний метод click()

click(btn: Button) {
    btn.click();
}

Вопрос в том, что реализация метода кнопки cliсл у  всех разный. Для этого у меня существует классы команды, в которые и защита логика.

class CutCommand {}
class ContourCommand() {}

Сейчас чтобы подставить нужную команду приходиться делать следующее:

click(btn: Button) {
   let command: Command;
    if (btn instanceof CutButton) {
         command = new CutCommand(deps);
    }
   this.commandMenager.execute(command);
}

При этом внутренний click кнопки остается как-бы незадействован.
Как лучше  сделать - внести создание команды new CutCommand(deps); в метод Button.click() или оставить как есть. И как избавиться от instanceof
источник

НН

Никита Наумов... in Angular - русскоговорящее сообщество
Внутри методов click у кнопок и должна быть реализация соотвествующих команд, разве нет?
источник

OP

Oleg P in Angular - русскоговорящее сообщество
Верно. Только в саму кнопку приходится передавать ссылку на commandManager - который контроллирует историю команд а так же прочие зависимости - например объект бизнес логики который срабатывает по клику. А так же саму команду. Ну или команду можно зашить прямо в кнопку. Что тоже не нравится.

class CutButton implements Button {
   command: Command;

  constructor(private commandManager: CommandManager, private concreteService)  {
        this.command = new CutCommand(concreteService);
  }

  click() {
      this.commandManager.execute(this.command);
  }
}
источник

S

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

OP

Oleg P in Angular - русскоговорящее сообщество
Для кнопки? не слишком ли много почестей)
источник