我的代码会在下面生成错误,即使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
答案 0 :(得分:5)
你有没有尝试过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>
答案 1 :(得分:2)
ng-show
将只显示或隐藏内容,但无论如何都会呈现内容,这会在将字符串分配给数字时导致错误。请改用ng-if
!