@ubsa

Как передать значение в ng-content Angular8?

Есть такой компонет Angular 8:
// a.component.ts
@Component({
  selector: 'app-a'
  templateUrl: './a.component.html',
})
class AComponent {
    @Input() text: string;
}
// a.component.html
<ng-content></ng-content>


И такой:
// b.component.ts
@Component({
  selector: 'app-b'
  templateUrl: './b.component.html',
})
class BComponent{
    @Input() text: string = "none";
}

// b.component.html
<div>
    text: {{ text }}
</div>


Как сделать так, чтобы использовать не так:
// app.component.html
<app-a text="ABCDE">
    <app-b text="ABCDE"></app-b>
    <app-b text="ABCDE"></app-b>
    <app-b text="ABCDE"></app-b>
</app-a>


А вот так, а текст "ABCDE" передался всем вложенным компонентам app-b уже из самого шаблона a.component.html:
// app.component.html
<app-a text="ABCDE">
    <app-b></app-b>
    <app-b></app-b>
    <app-b></app-b>
</app-a>
  • Вопрос задан
  • 322 просмотра
Решения вопроса 1
Ni55aN
@Ni55aN
На уровне app-a в providers записать сервис, который будет принимать данные для дальнейшего распространения, в этом же компоненте записать данные из @Input в сервис.
В app-b внедрить созданный сервис и забрать из него данные
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы