一、AngularJs中select绑定ng-model数字类型绑定问题
使用ng-model绑定select的时候默认是string字符串,如果指定的number值会绑定失败
举例说明:
<body ng-app='module' ng-controller="myCtrl"> 请选择性别: <select name="sex" ng-model='sex' > <option value="">请选择</option> <option value="1">男</option> <option value="2">女</option> </select> <button type="" ng-click="alter();">修改</button> </form> <script> (function() { 'use strict'; var app= angular.module('module',[ ]); app.controller('myCtrl',function($scope){ $scope.sex="1"; //特别说明,此处指定的为字符串,如果是number类型则绑定不成功 console.info($scope); $scope.alter=function(){ $scope.sex="2"; console.info($scope); } }); })(); </script
指定数值类型,绑定失败
app.controller('myCtrl',function($scope){ $scope.sex=1; //特别说明,此处指定的为字符串,如果是number类型则绑定不成功 $scope.alter=function(){ $scope.sex=2; console.info($scope); } });
解决方案:
如果需要指定number类型的值,对于select的绑定使用ng-options方式
请选择性别: <select name="sex" ng-model='sex' ng-options='x.id as x.name for x in [{id:1,name:"男"},{id:2,name:"女"}]'> <option value="">请选择</option> </select> <button type="" ng-click="alter();">修改</button>
如果不一定非得number类型,在修改$scope的时候指定string类型就行了。
更多参考:
AngularJs ng-options
原文链接:https://www.f2er.com/angularjs/148253.html