我正在尝试使用带有过滤器的ng-options,并且可以看到所看到的行为。但是,预期的行为并非所需。
做以下事情时的最佳做法是:
<div ng-init="blades = [{item:'1', spec:'2'}]"></div>
<select
ng-model="blades"
ng-options="blade.spec as blade.spec for blade in blades">
<option>--</option>
</select>
<ul>
<li ng-repeat="blade in blades">{{blades.item}}</li>
</ul>
在这里,当您进行过滤时,您可以过滤选择列表中的值,使其无效。什么是最佳做法?
答案 0 :(得分:5)
我在这个过程中回答了我自己的问题以及其他一些问题。这是如何:
<div ng-init="items = [{id:'1', spec:'A'}, {id:'2', spec:'B']"></div>
<select
ng-model="searchSpec"
ng-options="item.spec as item.spec for item in items">
<option>--</option>
</select>
<ul>
<li ng-repeat="item in items | filter:{spec:searchSpec}">{{item.spec}}</li>
</ul>
答案 1 :(得分:0)
Angular有一个内置的方法来做到这一点。 make ng-model =“search.spec”,搜索将始终为{spec:(selectedValue)}。这很好,因为您可以将多个选择下拉列表绑定到搜索对象的不同键。
<div ng-init="items = [{id:'1', spec:'A'}, {id:'2', spec:'B']"></div>
<select
ng-model="search.spec"
ng-options="item.spec as item.spec for item in items">
<option>--</option>
</select>
<ul>
<li ng-repeat="item in items | filter:search">{{item.spec}}</li>
</ul>