2016-03-22 49 views
1

我將從服務中獲取選定值作爲整數,並且需要將其作爲整數發回。請檢查Plnkr代碼ngmodel沒有綁定選擇標籤上的整數值

<!-- Working --> 
<div ng-init="selectedvalue = '3'"> 
    <select ng-model="selectedvalue"> 
    <option value="1">1</option> 
    <option value="2">2</option> 
    <option value="3">3</option> 
    <option value="4">4</option> 
    </select> 
</div> 
<!-- Not Working --> 
<div ng-init="selectedvalue2 = 3"> 
    <select ng-model="selectedvalue2"> 
    <option value="1">1</option> 
    <option value="2">2</option> 
    <option value="3">3</option> 
    <option value="4">4</option> 
    </select> 
</div> 
<!-- Not Working --> 
<div ng-init="selectedvalue3 = 3"> 
    <select ng-model="selectedvalue3"> 
    <option value=1>1</option> 
    <option value=2>2</option> 
    <option value=3>3</option> 
    <option value=4>4</option> 
    </select> 
</div> 

https://plnkr.co/edit/R7QfJfy6m6IgHKL07tFI?p=preview

+0

我知道這很煩人,但你總是可以解析T作爲INT使用'parseInt'。 –

+0

[複製](http://stackoverflow.com/questions/28114970/angularjs-ng-options-using-number-for-model-does-not-select-initial-value) – kiro112

回答

0

添加一個指令來解析字符串爲int。例如convert-to-number您選擇標籤:

<select ng-model="selectedvalue" convert-to-number> 
    <option value="1">1</option> 
    <option value="2">2</option> 
    <option value="3">3</option> 
    <option value="4">4</option> 
</select> 

然後你就可以有

.directive('convertToNumber', function() { 
    return { 
    require: 'ngModel', 
    link: function(scope, element, attrs, ngModel) { 
     ngModel.$parsers.push(function(val) { 
     return parseInt(val, 10); 
     }); 
     ngModel.$formatters.push(function(val) { 
     return '' + val; 
     }); 
    } 
    }; 
}); 
0

在選擇價值被解釋像串。

您必須使用字符串並在之前或之前轉換/解析您的值。

1

在NG-模型,你可以添加過濾器數量這樣的轉換:

ng-model="selectedvalue3 | number" 
0

您可以按照此過程select as label for value in array和更好的方式來從控制器的初始化值。

像控制器:

$scope.selectedvalue3 = 30; 
$scope.infos= [{age:21, name:"xx"},{age:20, name:"yyy"},{age:30, name:"zzz"},{age:40, name:"ppp"}]; 

和HTML:

<div> 
    <select ng-options="info.age as info.age for info in infos" ng-model="selectedvalue3"></select> 
</div> 

,其中年齡爲整數值。它可能會幫助你