텍스트를 입력하는 간단한 구성 요소를 만들려고합니다. 값이 변경되면 오류가 발생했습니다.Angular2 - 양방향 바인딩의 오류 : 확인 후 표현식이 변경되었습니다.
이 오류에 대한 기사를 이미 확인했습니다. 그들 중 하나는 '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';
}
필자는 단지 입력에서 괄호를 제거해야한다고 생각합니다 :' '. 두 가지 way-databinding이 없어야하기 때문에 오류가 발생한다고 생각합니다. –
@alexkucksdorf 여기서 요점은 자식이 변경 될 때 부모에게 알릴 수 있도록하는 twoway 바인딩입니다. 따라서 twoway 바인딩이 필요합니다 :) – Alex