Предположим, у меня есть компоненты Parent
и Child
.Child
может использоваться как автономный компонент или как компонент Parent
.Тем не менее, я хочу, чтобы Child
имел другое поведение в зависимости от того, где он живет.
Предположим, что Child
имеет необязательный @Input [isHappy]
, который либо true
, либо false
. Однако , когда компонент Child
размещается компонентом Parent
, предположим, что isHappy
всегда должно быть истинным.
AFAICT Есть два способа сделать это:
1) Пользователь должен просто знать , чтобы всегда указывать [isHappy]="true"
всякий раз, когда Child
размещается на Parent
.
<parent>
<child [isHappy]="true"></child>
</parent>
2) Parent
, устанавливаемых вручнуюthis.child.isHappy = true
в пределах ngOnInit
ловушки жизненного цикла.
Какой подход предпочтительнее? На мой взгляд, подход №2 имеет больше смысла, пользователям не нужно знать, чтобы установить [isHappy]="true"
когда Child
размещен Parent
.С другой стороны, я знаю, что в Angular не одобряется то, что компоненты программно меняют друг друга, особенно если все компоненты OnPush
(пожалуйста, исправьте меня, если я здесь не прав).