Итак, у меня есть следующий компонент:
export class ModuleComponentComponent implements OnInit {
dropzoneConf;
fileService = environment.getFileUrl;
constructor(
private moduleComponentService: ModuleComponentService) {
}
@Input()
selectedComponent: ModuleComponent;
ngOnInit() {
this.setDropZoneConfig();
}
}
И в этом у меня есть следующий html:
<h3 class = "m-portlet__head-text m--font-success">
<input class = "form-control" type = "text" [ngModel] = "selectedComponent.title" />
</h3>
и способ добавления компонента в свой html:
<div class = "col-lg-8 col-x1-12" *ngIf = "selectedComponent != null">
<app-module-component [selectedComponent] = "selectedComponent"></app-module-component>
</div>
Когда я что-то ввожу в поле ввода, переменная selectedComponent.title не обновляется.
Кто-нибудь может сказать мне, что происходит?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Используйте двустороннюю привязку
[(ngModel)] = "selectedComponent.title"
вы должны использовать двустороннюю привязку данных
[(ngModel)]
<input class = "form-control" type = "text" [(ngModel)] = "selectedComponent.title" />
and make sure to import forms module in app.module.ts
import { FormsModule } from '@angular/forms';
Нам нужно использовать двустороннюю привязку данных с [(ngModel)]
<h3 class = "m-portlet__head-text m--font-success">
<input class = "form-control" type = "text" [(ngModel)] = "selectedComponent.title" />
</h3>
Вы должны прочитать часть о двусторонней привязке данных в документации Angular.
Если вы хотите использовать только [ngModel], вы можете, но вы должны улавливать изменения с помощью (ngModelChange)
<h3 class = "m-portlet__head-text m--font-success">
<input class = "form-control" type = "text" [ngModel] = "selectedComponent.title" (ngModelChanges) = "setTitle($event)" />
</h3>
Вы можете улучшить его с помощью форм, просто задавайте мне любые вопросы по этому поводу