我有对象$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
答案 0 :(得分:2)
首先,不要使用ng-repeat代替列表,而是使用ng-options。
现在根据第一个列表设置第二个列表的默认值,您需要为第一个列表设置ng-model
。因此,无论何时在列表项中进行选择,所选值都将在ng-model中。通过使用它,您可以设置第二个列表项默认值。您还可以通过在控制器中设置值来设置第一个列表项的默认值。
请参阅此example