角度中的输入类型编号会产生错误,即使该输入的ng显示被隐藏(相同的ng模型)

Input type number in angular generates error even if ng-show is hidden for that input (same ng-model)

本文关键字:输入 ng 显示 隐藏 模型 编号 类型 错误      更新时间:2023-09-26

即使ng-show隐藏了type="number"的元素,我的代码也会生成下面的错误;https://docs.angularjs.org/error/ngModel/numfmt

Angular 1.4

在控制器中:

this.obj = {
a: {type:'string',value:'str'},
b: {type:'number',value:2}
}
this.selected = 'a';

在模板中

<span ng-show="ctrl.obj[selected]=='number'"><input type="number" ng-model="ctrl.model" /></span>
<span ng-show="ctrl.obj[selected]=='string'"><input type="text" ng-model="ctrl.model" /></span>

当我在"text"类型字段中输入文本时,控制台中仍然会出现错误。如何修复?Error: [ngModel:numfmt] http://errors.angularjs.org/1.4.1/ngModel/numfmt?p0=3

你有没有试过ng-if?

<span ng-if="ctrl.obj[selected]=='number'"><input type="number" ng-model="ctrl.model" /></span>
<span ng-if="ctrl.obj[selected]=='string'"><input type="text" ng-model="ctrl.model" /></span>

ng-show只会显示或隐藏内容,但无论如何都会呈现内容,这将导致在为数字分配字符串时出错。请改用ng-if