В этом у меня голова кружится кругами.
Я хочу создать классы для представления данных, возвращаемых из серверной части в Angular (не AngularJS).
У меня два верхаклассы уровня Variation
и Reallocation
.Оба типа базового класса Adjustment
.Поэтому и Variation
, и Reallocation
расширяются Adjustment
.Большая часть определения класса относится к классу Adjustment
с небольшими, но важными различиями между двумя производными классами.
Кажется, имеет смысл использовать класс Adjustment
для обработки большей части сообщенийс фоном.То есть, я хочу получить Variation
.Я должен быть в состоянии передать идентификатор методу getAdjustment
, равному Variation
, и заставить его вернуть экземпляр Variation
, заполненный данными с сервера.
Пока все это логично для меняи я МОГУ заставить его работать.
Проблема в том, что где-то на линии мне приходится использовать сервис для получения данных из бэкэнда.Я использую AngularFirestore для получения данных.
Итак, в моем Adjustment
классе я должен включить конструктор в следующие строки:
constructor(
public afs: AngularFirestore,
....){}
Проблема в том, когдаЯ пришел, чтобы использовать super () в моем производном классе.Я также должен внедрить AngularFirestore в производный класс.То есть у меня должно быть что-то вроде:
export class Variation extends Adjustment {
....
constructor(
afs: AngularFirestore,
.... ) {}
super (afs,
....)
Класс Variation
на самом деле не должен ничего знать о AngularFirestore, но я должен внедрить его в этот класс, чтобы включить его вAdjustment
класс.
Должен быть способ избежать этого, но я просто не могу понять это.