我在下拉列表中设置值时遇到问题。以下是我的下拉列表的代码:
<select class="price-dropdown" ng-model="createCampaign.currency" ng-options="obj.id as obj.symbol for obj in config.currencies"></select>
这是对象:
[Object, Object]
0: Object
id: "GBP"
name: "GBP"
symbol: "GBP"
__proto__: Object
1: Object
id: "dollar"
name: "Dollar"
symbol: "$"
__proto__: Object
length: 2
__proto__: Array[0]
将0,1,2设为值而不是id
。
我已经查看了其他问题但是还没有能够使任何解决方案都有效。
我做错了什么?
答案 0 :(得分:0)
它设置对象Ordinal似乎。你能在{obj.id}中调试和编辑ng-options =“obj.id as obj.symbol for obj in config.currencies”&gt;做对了。
答案 1 :(得分:0)
我为您的问题创建了Fiddle。在这里,它具有id作为值。
代码段:
<div ng-app="myapp">
<fieldset ng-controller="FirstCtrl">
<select
ng-options="p.name as p.name for p in symbol"
ng-model="selectedPerson"></select>
{{ selectedPerson }}
</fieldset>
</div>
答案 2 :(得分:0)
我认为下拉列表必须在列表中有唯一的标识符..以识别正确的选择..在此示例中查看小提琴link它可能对您有帮助..
<select class="span2" name="SelectedState" ng-model="selectedState" ng-options="state.id as state.name for state in states">
</select>
控制器代码:
$scope.states = [{
id: 1, name: 'France'
}, {
id: 2, name: 'UK'
}, {
id: 3, name: 'Germany'
}];
$scope.selectedState = $scope.states[2];
答案 3 :(得分:0)
此代码有助于解决您的问题,请检查一次
$scope.colors = [
{name:'black', shade:'dark'},
{name:'white', shade:'light'},
{name:'red', shade:'dark'},
{name:'blue', shade:'dark'},
{name:'yellow', shade:'light'}
];
<select name="value">
<option ng-repeat="color in colors" value="{{color.name}}">
{{color.name}}
</option>
</select>
答案 4 :(得分:-1)
这不是错误,这是一个功能。 angularjs在内部处理ngOptions和ngModel,这样它允许您在选项中使用任何类型的对象作为值,而不仅仅是字符串。这个link应该可以帮到你:)看这个教程这是你问题的捷径。