Size: a a a

Советский Angular

2020 June 26

Вキ

Вертихвост キバ 🏡🦊... in Советский Angular
Eugene
и провайдеры инстанцируются в момент создания?
ага
источник

Вキ

Вертихвост キバ 🏡🦊... in Советский Angular
а потом дестроятся, когда становятся не нужны
источник

E

Eugene in Советский Angular
Вертихвост キバ 🏡🦊
наверное, это можно как-то удобно завернуть
сделать в ngxd @Input() providers: Array<Type<any>> ;)
источник

Вキ

Вертихвост キバ 🏡🦊... in Советский Angular
Eugene
сделать в ngxd @Input() providers: Array<Type<any>> ;)
они должны быть статическими
источник

E

Eugene in Советский Angular
блин(
источник

E

Eugene in Советский Angular
Вертихвост キバ 🏡🦊
они должны быть статическими
так неинтересно, компоненты, получается, будут знать про реализацию
источник

Вキ

Вертихвост キバ 🏡🦊... in Советский Angular
Eugene
так неинтересно, компоненты, получается, будут знать про реализацию
не
источник

Вキ

Вертихвост キバ 🏡🦊... in Советский Angular
ты просто из компонентов сделаешь модули
источник

E

Eugene in Советский Angular
Вертихвост キバ 🏡🦊
ты просто из компонентов сделаешь модули
тогда я ничего не понял :)
источник

Вキ

Вертихвост キバ 🏡🦊... in Советский Angular
либо посмотреть в api ivy, может там есть что-то интересное
источник

Вキ

Вертихвост キバ 🏡🦊... in Советский Angular
Eugene
тогда я ничего не понял :)
@Injectable()
clas MyService extends BaseService {}

@Component({
 providers: [
   MyService, { provide: BaseService, MyService }
 ]
})
class MyServiceComponent {}

getBaseService(type: Type): BaseService {
 return createComponent(type).injector.get(BaseService);
}

const myService = getBaseService(MyServiceComponent);
источник

Вキ

Вертихвост キバ 🏡🦊... in Советский Angular
и там еще injector надо передать, и не createComponent, а ComponentFactoryResolver
источник

Вキ

Вертихвост キバ 🏡🦊... in Советский Angular
ну ты понял)
источник

E

Eugene in Советский Angular
Вертихвост キバ 🏡🦊
@Injectable()
clas MyService extends BaseService {}

@Component({
 providers: [
   MyService, { provide: BaseService, MyService }
 ]
})
class MyServiceComponent {}

getBaseService(type: Type): BaseService {
 return createComponent(type).injector.get(BaseService);
}

const myService = getBaseService(MyServiceComponent);
источник

E

Eugene in Советский Angular
Вертихвост キバ 🏡🦊
@Injectable()
clas MyService extends BaseService {}

@Component({
 providers: [
   MyService, { provide: BaseService, MyService }
 ]
})
class MyServiceComponent {}

getBaseService(type: Type): BaseService {
 return createComponent(type).injector.get(BaseService);
}

const myService = getBaseService(MyServiceComponent);
черная магия!
источник

Вキ

Вертихвост キバ 🏡🦊... in Советский Angular
остается только красиво завернуть
источник

E

Eugene in Советский Angular
завтра попробую сделать реализацию ^___^
источник

E

Eugene in Советский Angular
Вертихвост キバ 🏡🦊
остается только красиво завернуть
пасеба!)
источник

E

Eugene in Советский Angular
Вертихвост キバ 🏡🦊
@Injectable()
clas MyService extends BaseService {}

@Component({
 providers: [
   MyService, { provide: BaseService, MyService }
 ]
})
class MyServiceComponent {}

getBaseService(type: Type): BaseService {
 return createComponent(type).injector.get(BaseService);
}

const myService = getBaseService(MyServiceComponent);
мм.. нам ведь нужен компонент на каждый абстрактный провайдер, а не на каждую реализацию, я правильно понял?
источник

Вキ

Вертихвост キバ 🏡🦊... in Советский Angular
Eugene
мм.. нам ведь нужен компонент на каждый абстрактный провайдер, а не на каждую реализацию, я правильно понял?
в компонент можно спрятать резолвер и резолвить резолвер
источник