我有两个选择字段,我需要根据第一个字段的选择过滤第二个字段中的选项,我需要通过类名来完成。例如,这些是选择框:
<select ng-model="type">
<option val="short">Short</option>
<option val="long">Long</option>
</select>
<select>
<option ng-repeat="item in items" ng-class="{'short': item.short, 'long:' item.long}">{{item.name}}</option>
</select>
ng-repeat
将生成此类HTML:
<select>
<option class="short">Foo</option>
<option class="short long">Bar</option>
<option class="long">Foobar</option>
</select>
当你选择短片时,它应该显示&#39; Foo&#39;并且&#39; Bar&#39;。当你选择长时,它应该显示&#39; Foo&#39;和&#39; Foobar&#39;。
所以我想比较{{type}}和应用的类名,并显示其中一个应用的类名是否与{{type}}匹配。我怎么能这样做?
答案 0 :(得分:1)
如果你只想要过滤掉选项,我建议使用ng-if
。如果item[type]
返回false,则隐藏它。
http://jsfiddle.net/68Lyz56x/1/
<div ng-app>
<div ng-controller="ctrl">
<select ng-model="type">
<option val="short">short</option>
<option val="long">long</option>
</select>
<select>
<option ng-repeat="item in items" ng-if="item[type]">{{item.name}}</option>
</select>
</div>
function ctrl($scope) {
$scope.items = [{
name: 'Foo',
short: true,
long: false
}, {
name: 'Bar',
short: true,
long: true
}, {
name: 'Foobar',
short: false,
long: true
}]
}