如何在angular中设置select default选项?

How do I set select default option in angular?

本文关键字:select default 选项 设置 angular      更新时间:2023-09-26

从服务器检索到的json数据如下所示:

$scope.StateList = {"States": [
    {
        "Id": 1,
        "Code": "AL",
        "Name": "Alabama"
    },
    {
        "Id": 2,
        "Code": "AK",
        "Name": "Alaska"
    },
    {
        "Id": 3,
        "Code": "AZ",
        "Name": "Arizona"
    },
    {
        "Id": 4,
        "Code": "AR",
        "Name": "Arkansas"
    }]}
$scope.Address = {"Address": {
    "Address1": "123 Maple" ,
    "Address2": null,
    "City": "Tempe",
    "State": "AZ",
    "ZipCode": null,
    "Country": null,
    "Id": 0,
    "Latitude": 0,
    "Longitude": 0
}}

我设置了一个像下面这样的选择:

  <select ng-model="Address.State">
    <option ng-repeat="template in StateList.States">{{template.Code}}</option>
  </select>

我需要能够得到地址。要绑定到所选值的State字段,是所选选项的初始值。我还没有能够钉这一个下来,并将感激任何人谁可以告诉我我错过了什么。

你能做的就是使用ng-options指令和ngModel,让angular为你创建这些选项。试试这样:-

 <select ng-model="Address.Address.State" 
         ng-options="state.Code as state.Name for state in StateList.States"></select>

Plnkr

基本上使用了语法

"select" as "label" for "value" in "array"

您可以按照PSL的建议使用ng-options,也可以使用options的value属性

<option ng-repeat="template in StateList.States" 
       value="{{template.Code}}">{{template.Code}}</option>

恰好链接

最好使用专门为选择下拉菜单提供的ng-options绑定,而不是提供迭代的ng-repeat绑定。下面的标记将提供默认文本和下拉选项

<select ng-model='Address.State' ng-options="template.Code for template in StateList.States" >
    <option value=""> Select one </option>
</select>