天天看點

AngularJs select綁定數字類型問題

一、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 

AngularJs ng-change事件/指令