這裏是我的JSON數組:NG-模型有一個字符串值和NG選項整數
array=[ {id:1, name:'A'} , {id:2, name:'B'} ]
而在NG-模型我設置這可能是串像
modelValue='1'
I值曾NG-選項
ng-option="option.id as option.name for option in array"
ng-model="modelValue"
但它沒有顯示在選擇
選擇NG-模型的價值這裏是我的JSON數組:NG-模型有一個字符串值和NG選項整數
array=[ {id:1, name:'A'} , {id:2, name:'B'} ]
而在NG-模型我設置這可能是串像
modelValue='1'
I值曾NG-選項
ng-option="option.id as option.name for option in array"
ng-model="modelValue"
但它沒有顯示在選擇
選擇NG-模型的價值而在NG-模型我設置這可能是串像
你應該提供相同primitive or object type
值到id
的$scope.modelValue
。這是首選方式。
如果只JSON array
正在被動態地獲取和類型的一致性無法保證,那麼你可以將一個函數將其轉換爲一個設置爲$scope.modelValue
在HTML類型
<select ng-model="modelValue" ng-options="getId(option.id) as option.name for option in myarray">
</select>
在控制器
$scope.modelValue='1';
$scope.myarray=[ {id:1, name:'A'} , {id:2, name:'B'} ];
$scope.getId = function(id)
{
if(typeof $scope.modelValue == "string")
return String(id);
else if(typeof $scope.modelValue == "number")
return parseInt(id);
}
另見this答案
這工作正常。謝謝!! –
下面是根據您的描述工作的jsfiddle例如:http://jsfiddle.net/9pLdgmm1/1/
您應該使用ng-options
代替ng-option
<select ng-options="p.name for p in people"
ng-model="selectedPerson">
</select>
我在ng-option和模型中的字符串中有整數值。 –
@ Pooja-G然後請檢查我更改的JSFiddle http://jsfiddle.net/4phwd44b/。 – tomepejo
謝謝。但我得到了我想要的完美解決方案Nishant123 –
你應該採取ng-options
而不是ng-option
,ALS你應該採取integer
本身,而不是字符串..
<!DOCTYPE html>
<html>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<body>
<div ng-app="myApp" ng-controller="myCtrl">
<select ng-model="modelValue" ng-options="option.id as option.name for option in names">
</select>
</div>
<script>
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
$scope.names = [ {id:1, name:'A'} , {id:2, name:'B'} ]
$scope.modelValue = 1;
});
</script>
<p>This example shows how to fill a dropdown list using the ng-options directive.</p>
</body>
</html>
請ng-options
運行上面的代碼片段
你有一個語法錯誤:
<select ng-options="option.name for option in array" ng-model="modelValue"></select>
var myapp = angular.module('myapp', []);
myapp.controller('FirstCtrl', function($scope) {
$scope.array = [{
id: 1,
name: 'A'
}, {
id: 2,
name: 'B'
}];
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myapp">
<fieldset ng-controller="FirstCtrl">
<select ng-options="option.name for option in array" ng-model="modelValue"></select>
modelValue is: {{modelValue}}
</fieldset>
</div>
爲什麼這是downvoted?上面的代碼工作並提供了一個解決方案... – Mistalis
這不應被選中,因爲所有的id都是數字。如果你想讓它選擇,然後解析你的$ scope.modelValue像這樣的數字。
$scope.modelValue= parseInt("1");
而且改變你的NG選項,而不是NG選項的
錯字:NG-選項,你忘了 'S'。 – Walfrat
@Walfrat這是鍵入堆棧時的錯字 –