angularjs - 下拉取决于id / name组合时其他下拉列表不起作用

时间:2015-11-12 05:18:20

标签: javascript angularjs angular-ngmodel ng-options angularjs-ng-options

我一直在使用@Brocco提供的解决方案:Dropdown depends on other dropdown - angularjs

我注意到当你在对象中使用ID / Name组合供Angular使用时,它会自动失败。我已经使用提供的JSFiddle AngularJS版本以及最新的AngularJS版本对此进行了测试,并且在两个实例中都失败了。

的jsfiddle:

http://jsfiddle.net/h8uoy9xr/(更新小提琴链接)

HTML:

<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.0.6/angular.min.js"></script>
<div ng-app>
    <div ng-controller="MyCntrl">
        <select ng-model="server" ng-options="server.id as server.name for server in servers"></select>
        <!-- server.name for server in servers (This works a treat, but not the other way) -->
        <select ng-model="version" ng-options="version.id as version.name for version in server.version"></select>
    </div>
</div>

JS:

function MyCntrl($scope) {


    $scope.servers = 
       [
           {
               "id": 1,
               "name": "server1",
               "version":
               [
                   {id:1,name: "10.x"}
               ]
           },
           {
               "id": 2,
               "name": "server2",
               "version":
               [
                   {id:2,name:"1"}, {id:3,name:"2"}
               ]
           }
       ];


}

1 个答案:

答案 0 :(得分:1)

如果你display the value of the server,你会发现它只获得了id,而不是指定的整个对象。

更改

ng-options="server.id as server.name for server in servers"

ng-options="server as server.name for server in servers"

get it working

as关键字之前的值保存到模型中。 after后面的值用作下拉列表中的标签。