두 값으로 구성 요소를 만들 수 있습니다. 하나는 바인딩 된 값이고 다른 하나는 표시된 값입니다.
@Component({
selector: 'hello-world',
template: `
<input type="text" [(ngModel)]="display" (keyup)="updateInput($event)" placeholder="Enter a name here">
<hr>
<h1>Input: {{input}}</h1>
`
})
export class HelloWorld {
@Input() input = 0;
@Output() inputChange = new EventEmitter();
display;
ngOnInit() {
this.display = `${this.input}%`
}
updateInput(evt) {
this.input = this.display.replace(/[^0-9.]/g, "");
this.display = `${this.input}%`;
this.inputChange.emit(this.input);
}
}
그리고 당신과 같이 구성 요소에 바인딩 할 수 있습니다 : 구성 요소는 조금 같을 것이다 나는이 그림에서 ngModel을 원하는 것이
<hello-world [(input)]="myVar"></hello-world>
, 내 입력 상자의 몇 동적 될 것 사촌 populated –
'value' 속성은 여기서'title' 값을 표시하고 title 값은'keydown' 이벤트에서 갱신됩니다. 그것은 실제로'ngModel'과 같은 일을합니다 –