如何在Angular JS中链接选择列表?

时间:2015-06-12 11:00:08

标签: angularjs

我有对象$scope.animals和页面上的两个选择列表:

<select ng-model="type">
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
</select>


<select ng-model="animals">
  <option ng-repeat="(key, value) in animals">{{value}}</option>
</select>

如何默认从对象中显示选择列表中的所有选项,如果从第一个选择列表中选择选项,则按ID排序第二个列表?

例如,如果我从value="1"中选择ng-model="type",则在第二个列表中出现选项,其中key = value="1"

我可以在选项ng-show中使用ng-repeat条件,但只有在我选择第一个列表

时它才会起作用

更新了问题: 我找到了简单的方法:

<option value="{{value.id}}" ng-repeat="(key, value) in animals">{{value.name}}</option>

为此,我需要将filter应用为:

| filter:value.type = selectedValueFromFirstList

我怎么做?

编辑:

我用:

 <option ng-show="selected == value.id" value="{{value.id}}" ng-repeat="(key, value) in animals">{{value.name}}</option>

默认情况下如何显示选项?现在它只有在我有selected

时才有效

1 个答案:

答案 0 :(得分:2)

首先,不要使用ng-repeat代替列表,而是使用ng-options

现在根据第一个列表设置第二个列表的默认值,您需要为第一个列表设置ng-model。因此,无论何时在列表项中进行选择,所选值都将在ng-model中。通过使用它,您可以设置第二个列表项默认值。您还可以通过在控制器中设置值来设置第一个列表项的默认值。

请参阅此example