Не уверен, что именно вы имеете в виду, но я отвечу, как я понял;)
@ Ввод - это односторонняя связь. Поэтому, если parent.component
отправляет входные данные в child.component
и вы переназначаете их в child.component
, parent.component
не знает об этих изменениях. Однако любое изменение в parent.component
снова заменит значение в child.component
.
Если вы не хотите, чтобы он был переопределен, вы можете либо реализовать интерфейс OnChange
и вручную убедиться, что он больше не переопределяется.
ИЛИ
Используйте значение @Input только в качестве инициализатора и сохраните фактическое значение в переменной в child.component
, поэтому в ngOnInit
вы будете делать что-то вроде:
this.value = this.initializedValue;
, и впоследствии вы только меняете это значение.
(Если вы хотите двустороннюю привязку, чтобы изменения в child отражались в parent, просто предоставьте соответствующий @Output, сокращение [(variable)] фактически означает:
// Child component TS
@Input() variable: any;
@Output() variableChange = new EventEmitter<any>();
...
<!-- parent html -->
<app-child [(variable)]="parentVariable"></app-child>