这里是我的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这是键入堆栈时的错字 –