Angular js选择默认下拉菜单值

时间:2015-11-14 18:31:54

标签: javascript angularjs

使用angular js,我希望默认情况下在下拉菜单中选择service2值。

http://plnkr.co/edit/ssFHZEBuYWPUACEJ5GTb?p=preview

<!doctype html>
<html ng-app>
  <head>
    <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.0.6/angular.min.js"></script>
    <script src="script.js"></script>

  </head>
  <body>

<div ng-controller="MyCntrl">
  <select ng-model="prop.value" ng-options="v.name for v in prop.values">
  </select>

  {{ prop.value.name}}
{{ prop.value.id}}
</div>


  </body>
</html>

的script.js

 function MyCntrl($scope) {
      $scope.prop = {   "type": "select", 
        "name": "Service",
        "value":{"id":2, "name": "Service 2" }, 
    "values": [ {"id":1, "name": "Service 1" }, {"id":2, "name": "Service 2" }, {"id":3, "name": "Service 3" }, {"id":4, "name": "Service 4" }] 
      };

}

这是我想要实现的目标: 1)更改选定的对象ID和名称 2)默认选择一个值并显示其ID和名称

在示例中,第二个服务的ID和名称很好地显示。但是,下拉菜单无法选择服务2.

我该如何解决这个问题?

此致

2 个答案:

答案 0 :(得分:1)

你真的使用角度1.0吗?如果您可以使用Angular&gt; = 1.2,请使用track by功能:

<select ng-model="prop.value" ng-options="v.name for v in prop.values track by v.id">

示例:Plunker

资源: Documentation for ngOptions

答案 1 :(得分:0)

这就是你所需要的,

    <select ng-model="prop.value" ng-init="prop.value = prop.values[1]"
      ng-options="v.name for v in prop.values">

请注意ng-init部分,其中select选项使用下拉列表的第2项或prop.values数组进行初始化。

我希望这就是你所要求的。