Угловой 6 проходной сервис для родительского класса - PullRequest
0 голосов
/ 06 июня 2018

Я хочу абстрагировать свой компонент, поэтому у меня есть базовый класс:

class BaseClass{
  protected data: any;
  protected service: any;

  construct(service){
    this.service = service;
  }
}

И потомок:

@Component({
  selector: 'app-com',
})
export class Com extends BaseClass implements OnInit {

  constructor() { super(SomeService); }

  ngOnInit() {
    this.service.getAll().subscribe(x => this.data = x)
  }
}

Но я получаю ошибку, что

getAll() is not a function

Как правильно передать службу в родительский класс?

РЕШЕНИЕ

Я нашел решение.

В дочернем классе:

constructor(protected s: SomeService) { super(s); }

Но разве это хорошее решение?

1 Ответ

0 голосов
/ 26 ноября 2018

Но разве это хорошее решение?

Да, при расширении родительского сервиса вы вынуждены передавать все сервисы, необходимые родителю, через конструктор родителей.

Другие платформы также могут разрешать внедрение свойства / метода , но это не поддерживается angular.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...