У меня есть сценарий, в котором атрибуты директивы являются динамическими 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>
То же самое для всех других дочерних компонентов