Теперь я действительно запутался. Приведенный ниже код на самом деле не работает с моими формами, потому что мой компонент не имеет привязанных к данным свойств ввода. Я не уверен, стоит ли мне «искусственно» добавлять привязанные к данным свойства ввода для запуска ngOnChanges? Я вернулся на площадь 1, и мне придется повторить мой вопрос. ,,
=====
Во-первых, извиняюсь за то, что не сформулировал мой вопрос более четко. После дальнейших исследований, я думаю, что единственный способ сделать то, что я хочу сделать, это использовать OnChanges, но хорошая новость в том, что это было не так сложно, как я ожидал. На самом деле это довольно просто. Вот как я реализовал код:
details.component.ts
export class DetailsComponent implements OnInit, OnChanges {
doGet: boolean = true;
data: any[] = [];
ngOnChanges(chg: SimpleChanges){
if (chg.doGet.previousValue === false) {
// When user clicks button, "doGet" property is set to false in the (click) event
// handler. On re-rendering, it's initialized to "true", so we need
// to reference the previous value, and set it back to "false"
this.doGet = false;
// We also need to re-set our key data to the updated version of the old data
// rather than re-fetching the data using HTTP GET
this.data = chg.data.previousValue;
}
}
ngOnInit() {
if (this.doGet) {
this.member.getDetailsForm(this.userID).subscribe((data)=>{ // Perform HTTP GET
this.data = data;
this.renderDataArray();
})
} else this.renderDataArray();