Общая функция, которая вызывает сервис для привязки атрибутов директивы в компоненте - PullRequest
0 голосов
/ 30 апреля 2020

У меня есть сценарий, в котором атрибуты директивы являются динамическими c и заполняются через службу в компоненте. Компонент, в свою очередь, является дочерним компонентом, и id передается как @Input от родительского компонента. Таким образом, на основе id служба будет извлекать соответствующие значения атрибута для директивы.

Существует несколько дочерних компонентов, и фрагмент кода вызова службы (имеется несколько атрибутов, а не только 2) повторяется во всех компонентах. Есть ли способ добиться этого в общем месте и использовать его во всех дочерних компонентах. Кроме того, ниже объясняется несколько родительских компонентов, и поэтому перемещение этого кода в родительский компонент не то, что я ищу.

1007 * ParentComponent1 -> ChildComponent1, ChildComponent2 1011 * ParentComponent2 -> ChildComponent1, ChildComponent2 1015 * ParentComponent3 -> ChildComponent3, ChildComponent4

Есть ли другой эффективный способ добиться этого?

ChildComponent1.ts:

export class ChildComponent1
{
      attr1: string;
      attr2: string;
      @Input() id: number;

      constructor(private someService: SomeService) {}

      ngOnInt()
      {
          this.someService.method1(id)
              .subscribe(data => { 
                    this.attr1 = data.attr1; 
                    this.attr2 = data.attr2; 
                         });
      }
}

ChildComponent1. html:

<directive1 [attr1]="attr1" [attr2]="attr2"></directive1>

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

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