5

数値型の入力があり、onChange イベントで値を変更しようとしても機能しません。

テキスト入力についても同じことを試しましたが、完全に機能します。

<input
   type="number"
   [(ngModel)]="element.value" 
   (change)="onChange($event)"
   >

export class NumFieldComponent {
    @Input() index;
    @Input() element; //element.value = 0

    onChange($event){

        var confirm = confirm("Are you sure about this?")

        if(confirm){
            //True, accept the value
        } else {
            this.element.value = 0;
            //Failed, set the input back to 0
        }
    }
}

私はAngular2を初めて使用するので、ここで何が欠けていますか?

PS。ブール値を取る入力で同様の問題を見てきました

4

2 に答える 2

0

試していませんが、うまくいくかもしれません

export class NumFieldComponent {
    @Input() index;
    @Input() element; //element.value = 0

    constructor(cdRef:ChangeDetectorRef) {}

    onChange($event){

        var confirm = confirm("Are you sure about this?")

        if(confirm){
            //True, accept the value
        } else {
            this.element.value = 0;
            this.cdRef.detectChanges(); // <<<=== added
            //Failed, set the input back to 0
        }
    }
}
于 2016-10-14T05:49:19.533 に答える