Size: a a a

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

2019 October 04

ГР

Глеб Рябцев in Angular - русскоговорящее сообщество
Создавайте классы через фабрику напрямую
источник

ГР

Глеб Рябцев in Angular - русскоговорящее сообщество
а, отбой, я понял о чем вы
источник

DS

Denis Sitdikov in Angular - русскоговорящее сообщество
Пока что  голову пришла только одна мысль - создать 2й класс прослойку, который фабрику видит через интерфейс. IFactory.create(). Классы запускают создание через эту прослойку.
Class1 {
Factory2.create();
}
Factory2 {
private _factory1:IFactory;
create() {
 this._factory1.create();
}
}
Factory1 implements IFactory {
contructor(){
  this._factory2.init(this);
}
}
p.s. Может есть решение лучше?)
источник

IT

Igor Tobert in Angular - русскоговорящее сообщество
Александр Семенов
так вы загрузите то что я Вам сбросил и протестируйте
источник

IT

Igor Tobert in Angular - русскоговорящее сообщество
превосходно
источник

AI

Alex Inkin in Angular - русскоговорящее сообщество
Круговую зависимость можно обойти без выкрутасов просто заинжектив инжектор и вытянув из него то, что тебе нужно не в конструкторе, а в ngOnInit
источник

DS

Denis Sitdikov in Angular - русскоговорящее сообщество
У меня классы Class1 и т.д. не компоненты ангуляра .
источник

DS

Denis Sitdikov in Angular - русскоговорящее сообщество
Да даже быть они компонентами - вебпак все равно ругнулся бы.
источник

DS

Denis Sitdikov in Angular - русскоговорящее сообщество
Буть *
источник

DS

Denis Sitdikov in Angular - русскоговорящее сообщество
Импорты есть? Есть.
источник

AI

Alex Inkin in Angular - русскоговорящее сообщество
Понял, не о том подумал.
источник

ei

eth inv in Angular - русскоговорящее сообщество
Приходилось кому использовать instance сервиса, 2 раза и более в компоненте? Подскажите, как реализовали?
источник

ГР

Глеб Рябцев in Angular - русскоговорящее сообщество
eth inv
Приходилось кому использовать instance сервиса, 2 раза и более в компоненте? Подскажите, как реализовали?
А можете написать зачем это нужно?
источник

AI

Alex Inkin in Angular - русскоговорящее сообщество
+1
источник

ei

eth inv in Angular - русскоговорящее сообщество
Глеб Рябцев
А можете написать зачем это нужно?
К примеру есть сервис АПИ, нужно получить данные с одного токена и с другого и обработать их одновременно и отдать данные
источник

MF

Mireq Fallen in Angular - русскоговорящее сообщество
Denis Sitdikov
Ребят, помогите обойти "circular dependency".
Например, есть класс фабрика:
import { Class1 } from '/class1';
import { Class2 } from '/class2';
import { Class3 } from '/class3';

export class Factory {
   create(name: string) {
       switch (name) {
           case 'Class1':
               return new Class1();
           case 'Class2':
               return new Class2();
           case 'Class3':
               return new Class3();
       }
   }
}

Проблема в том что классы Class1, Class2 и т.д. должны уметь создавать так же эти классы, т.е. импортят Factory.
Отсюда круговая зависимость
"Factory" импортит "Class1", "Class1" импортит "Factory".
а если:
1) описать интерфейс фабрики
2) инъектить фабрику в классы
?
источник

ГР

Глеб Рябцев in Angular - русскоговорящее сообщество
Сделайте сервис посредник, в котором будет логика подобного общения с другими сервисам (передача токена например)
источник

ei

eth inv in Angular - русскоговорящее сообщество
Глеб Рябцев
А можете написать зачем это нужно?
Меняя одно или несколько свойства у класса.
источник

DS

Denis Sitdikov in Angular - русскоговорящее сообщество
Mireq Fallen
а если:
1) описать интерфейс фабрики
2) инъектить фабрику в классы
?
Ну по сути так примерно и решил делать.
источник

ei

eth inv in Angular - русскоговорящее сообщество
Глеб Рябцев
Сделайте сервис посредник, в котором будет логика подобного общения с другими сервисам (передача токена например)
Может есть что-то поинтереснее?)
источник