Angular2 - двусторонняя привязка для поля ввода

У меня есть поле ввода типа number. Когда пользователь вводит несколько нулей (0) и переходит к следующему полю ввода, несколько нулей должны вернуться к одному 0.

Я попробовал следующий код в plunkr: https://plnkr.co/edit/dyCp5ZMKOkZvcsw4F8og?p=preview

<input [(ngModel)]="value" type="number" class="form-control" id="valueId" 
(ngModelChange)="valuechange($event)">

valuechange(newValue) {
//newValue = newValue.toString().replace(/^0+/, '0');
newValue=parseInt(newValue.toString());
console.log(newValue);
}             

person Shweta Singh    schedule 20.04.2018    source источник
comment
ваш плункер имеет другой код, пожалуйста, проверьте и обновите плунжер   -  person Pardeep Jain    schedule 20.04.2018


Ответы (1)


Вам просто нужно установить 0 как строку, когда значение равно 0, и вместо этого вызвать функцию onchange. как это

<input [(ngModel)]="value" type="number" class="form-control" id="valueId" 
      (change)="valuechange($event)">


if(this.value === 0){
      this.value = '0';
}

PS: не нужно конвертировать с помощью parseInt и toString()

Рабочий пример

person Pardeep Jain    schedule 20.04.2018
comment
Большое спасибо. Вы спасли мой день! @pradeep Джейн - person Shweta Singh; 20.04.2018
comment
Рад познакомиться с @shweta, если вы получите то, что хотите, отметьте это как принятое и проголосуйте за него!! - person Pardeep Jain; 22.04.2018
comment
Рабочий пример — огромная помощь - person Vince I; 21.03.2019