私はAngular2のデータバインディングについてここでいくつかの質問を閲覧しましたが、期待していた結果を得ることができません。私は両方の角度に新しいです&流星。ここで別のAngular2 Two-Wayデータバインディング(流星で)
は、だから私は起こることを期待し、私はgetNameForm
のための送信ボタンをクリックしたときであることはラベルのためである私は私のapp.component.html
<form [formGroup]="getNameForm" (ngSubmit)="getName()">
<label>ID: </label><br>
<input type="text" formControlName="userID"><br>
<button type="submit">Get</button>
</form>
<div (ngModel)="basicUser">
<label name="basicUserName">{{basicUser.userName}}</label><br>
</div>
そして、何app.component.ts
...
export class AppComponent implements OnInit {
basicUser: BasicUser = { ... }
...
getName(): void {
...
Meteor.call('api.getName',{
userId: this.getNameForm.value.userID
}, (err, res) => {
if (err) {
console.log(err);
alert(err);
} else {
console.log(res);
this.basicUser = res;
});
...
}
でだで持っているものだbasicUserName
basic.userName
の値で更新されます。代わりに、画面上のデータのリフレッシュはありません。
しかし、入力テキストボックス&をクリックし、ページ上の他の場所をクリックすると、ラベルの値が正しくリフレッシュされます。ボタンのメソッドの実行時にラベルで使用されている変数が変更されているため、フォームのsubmitをクリックすると、これが発生するようにしたいと考えています。
ここで一見関連する質問に対する回答を見ると、メソッドの最後の行に含めて試しました。this.ref.detectChanges()
を試しました。それは役に立たなかった。
ngModel
を使用して他の回答を提案していますが、これは私が現在コードで行っているところですが、それでもやっていません。私は何かが明らかに欠けているように感じる。
それは完璧に働いた、ありがとう!マークされた回答。 NgZoneは道のりです。 – Neil