这是我的JSON数组:
modelValue='1'
在ng-model中我设置的值可能是字符串
ng-option="option.id as option.name for option in array"
ng-model="modelValue"
我有ng-option
{{1}}
但它没有在选择
中显示ng-model的选定值答案 0 :(得分:2)
在ng-model中我设置的值可能是字符串
您应primitive or object type
向$scope.modelValue
提供与id
相同的JSON array
。这是首选方式。
如果仅动态提取$scope.modelValue
并且无法保证类型一致性,则可以应用函数将其转换为设置为<select ng-model="modelValue" ng-options="getId(option.id) as option.name for option in myarray">
</select>
的类型
在HTML中
$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);
}
在控制器
中{{1}}
<强> COMPLETE EXAMPLE 强>
另见this回答
答案 1 :(得分:0)
这是一个基于您的描述的工作JSFiddle示例:http://jsfiddle.net/9pLdgmm1/1/
您应该使用ng-options
代替ng-option
<select ng-options="p.name for p in people"
ng-model="selectedPerson">
</select>
答案 2 :(得分:0)
您应该使用ng-options
代替ng-option
,您应该使用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>
&#13;
请运行以上代码段
答案 3 :(得分:0)
不应该选择此项,因为所有id都是数字。如果你想让它选择,那么将你的$ scope.modelValue解析为这样的数字。
$scope.modelValue= parseInt("1");
同时更改ng-options而不是ng-option
答案 4 :(得分:-1)
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>