即使为该输入隐藏了ng-show(同样的ng-model)

时间:2015-06-23 08:50:29

标签: javascript angularjs

我的代码会在下面生成错误,即使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

2 个答案:

答案 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