使用 ngRepeat 过滤器将 select 更改为 ui-select
Change select to ui-select with ngRepeat filters
我正在使用普通 HTML select 框来过滤 ngRepeat 结果,如下所示:
<select ng-model="theFilter.choice">
<option value="">Any</option>
<option value="Yes">Yes</option>
<option value="No">No</option>
</select>
<select ng-model="theFilter.otherChoice">
<option value="">Any</option>
<option value="Yes">Yes</option>
<option value="No">No</option>
</select>
<div class="col-xs-12"
ng-repeat="item in options | filter: { showMe: theFilter.choice, amIDeleted: theFilter.otherChoice }">
<p>{{ item.showMe }}</p>
<p>{{ item.amIDeleted }}</p>
</div>
这按预期工作。但是,就像我们都知道浏览器 select 框的样式不是很好,所以我试图用 ui-select
select 框替换正常的 select 框,但是这些 select 框无法正常工作。
当ui-select先改变时,没有任何反应。但是当 select 框首先被 selected 时,ui-select 就可以使用了。然后我可以同时使用 ui-select
和 HTML5 select 框。但我只想使用 ui-select
.
我的问题是:有什么方法可以使用 ui-select
而不是普通的 select 框来过滤我的结果?
您可以像这样使用 ui-select 的工作 plunker 示例以及您的示例场景的过滤器选项来尝试:
控制器:
$scope.theFilter = {
showMe: $scope.options[0].showMe,
amIDeleted: $scope.options[0].amIDeleted
};
我正在使用普通 HTML select 框来过滤 ngRepeat 结果,如下所示:
<select ng-model="theFilter.choice">
<option value="">Any</option>
<option value="Yes">Yes</option>
<option value="No">No</option>
</select>
<select ng-model="theFilter.otherChoice">
<option value="">Any</option>
<option value="Yes">Yes</option>
<option value="No">No</option>
</select>
<div class="col-xs-12"
ng-repeat="item in options | filter: { showMe: theFilter.choice, amIDeleted: theFilter.otherChoice }">
<p>{{ item.showMe }}</p>
<p>{{ item.amIDeleted }}</p>
</div>
这按预期工作。但是,就像我们都知道浏览器 select 框的样式不是很好,所以我试图用 ui-select
select 框替换正常的 select 框,但是这些 select 框无法正常工作。
当ui-select先改变时,没有任何反应。但是当 select 框首先被 selected 时,ui-select 就可以使用了。然后我可以同时使用 ui-select
和 HTML5 select 框。但我只想使用 ui-select
.
我的问题是:有什么方法可以使用 ui-select
而不是普通的 select 框来过滤我的结果?
您可以像这样使用 ui-select 的工作 plunker 示例以及您的示例场景的过滤器选项来尝试:
控制器:
$scope.theFilter = {
showMe: $scope.options[0].showMe,
amIDeleted: $scope.options[0].amIDeleted
};