テキストを入力するための単純なコンポーネントを作成しようとしています。 値が変更されたときにエラーが発生しました。Angular2 - 双方向バインディングのエラー:チェックした後に式が変更されました
私はすでにこのエラーに関する記事を確認しています。 そのうちの1人が「EnableProdMode()を使用する必要があります」と述べました。 それは確かに真実ですが、私はそれが不可欠な解決策ではないと思います。
私には、enableProdMode()より優れた解決策を教えてください。
@Component({
selector: 'text-input',
template: '<input type="text" [(ngModel)]="value"/>',
inputs: [
'value'
]
})
export class TextInput implements DoCheck {
@Input() value: string;
@Output() valueChange: EventEmitter<string> = new EventEmitter();
ngDoCheck(): void {
console.log(`ngDoCheck: value=${this.value}`);
this.valueChange.emit(this.value);
}
}
-
@Component({
template: `
<h1>Input Components</h1>
<h2>Text Input</h2>
<div>
<text-input [(value)]='textValue'></text-input>
</div>
<div>{{textValue}}</div>`
})
export class InputsPage {
textValue: string = 'Hello World';
}
私はあなたのように入力からparanthesesを削除する必要があると思います: ' '。私は、双方向のデータバインディングが必要ないため、エラーが発生したと思います。 –
@alexkucksdorfここでのポイントは、子供に変更が生じたときに親に通知することができるようにするための二重バインディングです。だからここにtwowayバインディングが必要です:) – Alex