如何在下拉列表中设置值

时间:2014-07-15 12:03:40

标签: javascript angularjs

我在下拉列表中设置值时遇到问题。以下是我的下拉列表的代码:

<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

我已经查看了其他问题但是还没有能够使任何解决方案都有效。

我做错了什么?

5 个答案:

答案 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应该可以帮到你:)看这个教程这是你问题的捷径。