2
사용자가 입력 필드에 입력 할 때 숫자 이외의 모든 문자를 빈 문자열로 바꿔야합니다. 불행히도 ngModel이 변경되었음을 감지하지 못하고 다시 숫자가 입력되면 balanceAmount
변수 만 업데이트합니다. ngModel이 변경되어 업데이트되어야한다고 Angular에게 알릴 수 있습니까?NgModel 변경된 문자를 빈 문자열로 바꿀 때 변경되지 않음
HTML :
는<input [ngModel]="balanceAmount" (ngModelChange)="onBalanceChange($event)" />
타이프 :
onBalanceChange(amount) {
amount = amount.replace(/[^0-9\.]+/g, '');
this.balanceAmount = amount;
}
당신이 묻고있는 것이 100 % 확실한 것은 아니지만 빈 문자열은'' ''이 아니라''undefined' '입니다. 또한'string' 연산을 수행 한 다음'integer' 연산과 비교를 시도합니다. 여러분의'string'과'0'을 비교하는 것이 합리적이라 할지라도, if 문은 결코 사실이 아닙니다. 왜냐하면 당신이 숫자를 음수가 될 수 없게 만드는'-' 기호를 포함한 비 숫자를 대체하기 때문입니다. 이 모든 기능에는 결함이 있고 불필요합니다. – Claies
* 정말로 * 사용자 입력을 숫자로 제한하려는 경우 입력에'type = "number"'를 사용해야합니다. 단 한가지주의 할 점은 숫자가 음수 일 수 있고 'e'(지수 숫자를 나타냄)가 허용 될 수 있다는 것입니다. – Claies
필자의 요점을 명확히하기 위해 제 질문을 업데이트했습니다. 당신이 말하는 함수와 if 문은 제 질문의 일부가 아닙니다. – maidi