Size: a a a

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

2020 April 02

ДМ

Денис Макаров... in Angular - русскоговорящее сообщество
Igor Filippov
Как запровайдить сервисы для динамически загружаемого модуля? angular 9
в провайдеры прописать?)
источник

IF

Igor Filippov in Angular - русскоговорящее сообщество
Денис Макаров
в провайдеры прописать?)
Да
источник

Вキ

Вертихвост キバ 🏡🦊... in Angular - русскоговорящее сообщество
Igor Filippov
Как запровайдить сервисы для динамически загружаемого модуля? angular 9
Самый простой вариант, сделать @Injectable({ providedIn: ‘root’ }), потом сделать инжект по токену:

const service = await import(‘’).then(m => m.Service);
injector.get(service);
источник

IF

Igor Filippov in Angular - русскоговорящее сообщество
Вертихвост キバ 🏡🦊
Самый простой вариант, сделать @Injectable({ providedIn: ‘root’ }), потом сделать инжект по токену:

const service = await import(‘’).then(m => m.Service);
injector.get(service);
`injector.get(service)`А это куда писать потом?
источник

Вキ

Вертихвост キバ 🏡🦊... in Angular - русскоговорящее сообщество
Igor Filippov
`injector.get(service)`А это куда писать потом?
там, где надо заинжектить сервис
источник

Вキ

Вертихвост キバ 🏡🦊... in Angular - русскоговорящее сообщество
есть еще другой вариант, сделать общую зависимость, который будет реализовывать собственный контенер зависимостей

и когда модуль подключается, то он будет в нем регистрироваться, тогда даже динамических импортов и инжектов не надо будет делать
источник

IF

Igor Filippov in Angular - русскоговорящее сообщество
Вертихвост キバ 🏡🦊
есть еще другой вариант, сделать общую зависимость, который будет реализовывать собственный контенер зависимостей

и когда модуль подключается, то он будет в нем регистрироваться, тогда даже динамических импортов и инжектов не надо будет делать
Я не знаю как это сделать 😂
источник

Вキ

Вертихвост キバ 🏡🦊... in Angular - русскоговорящее сообщество
Есть какие-нибудь идеи?
источник

IF

Igor Filippov in Angular - русскоговорящее сообщество
Вообще я думал что при compileModuleAndAllComponentsAsync все само компильнется
источник

IF

Igor Filippov in Angular - русскоговорящее сообщество
Вертихвост キバ 🏡🦊
Есть какие-нибудь идеи?
Да я вообще не понял что это значит зависимость, какая зависимость))..Пойду почитаю
источник

S

Smooth Operator in Angular - русскоговорящее сообщество
Igor Filippov
Как запровайдить сервисы для динамически загружаемого модуля? angular 9
в чем проблема я чет не пойму
источник

IF

Igor Filippov in Angular - русскоговорящее сообщество
Smooth Operator
в чем проблема я чет не пойму
Как я уже писал выше, думал что сервисы сами скомпилируются. Но выходит иначе. Как в таком раскладе их записать в провайдеры я хз
источник

Вキ

Вертихвост キバ 🏡🦊... in Angular - русскоговорящее сообщество
// container.ts
// сервис, который позволяет регистрировать и резолвить сервисы
@Injectable({ providedIn: 'root' })
class Container {
 link<T>(token: string, service: T): void;
 resolve<T>(token: string): T;
}


// lazy.ts
// сервис, который регистрирует себя в контейнере
import { Container } from './container.ts';

@Injectable({ providedIn: 'root' })
class Service {
 constructor(container: Container) {
   // либо тут, и тогда надо зарезолвить сервис хотябы один раз
   // либо где-то еще
   container.link('token', this);
 }
}


// component.ts
// компонент, который резолвит сервис из контейнера
import { Container } from './container.ts';

@Component({ … })
class Component {
 constructor(contianer: Container) {
   const service  = container.resolve('token');
 }
}
источник

В

Виталий in Angular - русскоговорящее сообщество
А разве TS не должен ругаться на подписку на Obsevable<never>

Демка (почему-то не ругается)

https://stackblitz.com/edit/observable-never
источник

S

Smooth Operator in Angular - русскоговорящее сообщество
Igor Filippov
Как я уже писал выше, думал что сервисы сами скомпилируются. Но выходит иначе. Как в таком раскладе их записать в провайдеры я хз
а this.container что
источник

S

Smooth Operator in Angular - русскоговорящее сообщество
Виталий
А разве TS не должен ругаться на подписку на Obsevable<never>

Демка (почему-то не ругается)

https://stackblitz.com/edit/observable-never
не должен
источник

IF

Igor Filippov in Angular - русскоговорящее сообщество
Smooth Operator
а this.container что
viewref
источник

IF

Igor Filippov in Angular - русскоговорящее сообщество
Компонент то вставляется
источник

В

Виталий in Angular - русскоговорящее сообщество
Smooth Operator
не должен
Тогда в чём удобство/выгода использовать тип Observable<never>?
источник

S

Smooth Operator in Angular - русскоговорящее сообщество
Igor Filippov
Компонент то вставляется
ну так, разве там нет аргумента с инжектором?
источник