С DI в компонентах все понятно - их автоматом инжектит angular, если они указаны в конструкторе. Но как быть, если сервис нужен в классе данных, например каком-нибудь
class user {
id: number;
name: string;
constructor(id: nubmer, name: string) {
this.id = id;
this.name = name;
}
get address(){
/* someService */
}
}
Во-первых, тут конструктор уже занят. И даже если его заменить на функцию-фабрику отдающую тот же инстанс, то автоинъекция не будет работать в данной классе ибо он создается через new. Нагуглив решение, получился такой костыль: в конструкторе указать:
let injector = ReflectiveInjector.resolveAndCreate([UserService]);
User.userService = injector.get(UserService);
Есть еще варианты решение задачи?