【问题标题】:Why is [(ngModel)] not mapping initial '-' (minus sign)?为什么 [(ngModel)] 不映射初始“-”(减号)?
【发布时间】:2020-07-10 09:25:24
【问题描述】:

.html代码

<input type="number" [(ngModel)]="input_value" (keyup)="printValue()" />

.ts 代码

input_value: any;
...
...  
printValue(){
 console.log(this.input_value)
}

输出:

Input--> Outputs

111  -->   111

-5   -->   5
-    -->   ""
-8 (prepend a minus sign after I Enter a number) -> -8

每次我尝试输入减号时,它只需要空字符串,但如果输入一个数字,然后在前面加上减号,它就可以正常工作。

我怎样才能让它工作,以便我可以先输入减号然后添加数字?

【问题讨论】:

  • 你的意思是输入简单的“减号-”它不输出?
  • 是的,它把它当作一个空字符串,它将输入字段再次转换为空白
  • 输入是type="number",减号不是数字,有些导航器给你null,另外一个""
  • 我明白了,想知道是否有办法让它工作?..因为 html 输入类型编号允许您这样做
  • 您希望它打印什么? -0? - 本身不是一个值/数字,不应被视为一个。

标签: angular angular6 angular-ngmodel


【解决方案1】:

- (minus) 本身不是一个值,所以它会打印null

但它确实有效:https://stackblitz.com/edit/angular-input-minus

【讨论】:

  • 就像您共享的示例一样,在我为其提供数值之前,它不会绑定到输入字段...如果我以减号开始输入,则输入会将自身绑定回 null 并且显示为空
  • 强制用户输入一个数字,然后在前面加上-号
  • 不,你可以输入- and 5或者5 and prepend -,没有区别。
  • 是的,它应该可以工作,但是在我输入 - 符号后输入字段变为空白,无论如何它可以在您的演示上工作,所以它与 ngmodel 无关,我会尝试用其他方法解决,谢谢
  • 我明白了。指令和 HostListener 可以修改元素,因此您可能需要检查这是否是罪魁祸首。
猜你喜欢
  • 2014-01-09
  • 1970-01-01
  • 2015-10-21
  • 2020-02-22
  • 2021-08-16
  • 1970-01-01
  • 2019-11-15
  • 2020-01-14
  • 2018-03-06
相关资源
最近更新 更多