Nie mogę dowiedzieć się, jak powiązać pola z komponentem, aby pola były aktualizowane, gdy zmienię właściwości w OnDataUpdate().Powiązanie danych nie aktualizuje się, gdy zmiany właściwości w Angular2
Pole "OtherValue" ma działający dwukierunkowo wiązanie do pola wejściowego, a pole "Name" wyświetla "test", gdy komponent jest wyświetlany. Ale po odświeżeniu danych żadne z pól nie jest aktualizowane w celu wyświetlenia zaktualizowanych danych.
Pierwsza zarejestrowana wartość "this.name" jest niezdefiniowana (???), druga jest prawidłowa, ale pole powiązane z tą samą właściwością nie jest aktualizowane.
W jaki sposób komponent może dostarczyć wartość początkową dla pola nazwy, ale po wyzwoleniu aktualizacji danych właściwość name jest nagle niezdefiniowana?
stuff.component.ts
@Component({
moduleId: __moduleName,
selector: 'stuff',
templateUrl: 'stuff.component.html'
})
export class BuildingInfoComponent {
Name: string = "test";
OtherValue: string;
constructor(private dataservice: DataSeriesService) {
dataservice.subscribe(this.OnDataUpdate);
}
OnDataUpdate(data: any) {
console.log(this.Name);
this.Name = data.name;
this.OtherValue = data.otherValue;
console.log(this.Name);
}
stuff.component.html
<table>
<tr>
<th>Name</th>
<td>{{Name}}</td>
</tr>
<tr>
<th>Other</th>
<td>{{OtherValue}}</td>
</tr>
</table>
<input [(ngModel)]="OtherValue" />
Co zrobić, jeśli nie jest to wywołanie funkcji i jest przypisaniem wartości? @pierreduc –
Powinieneś zawinąć to zadanie w anonimową funkcję strzałki – PierreDuc