gpt4 book ai didi

angularjs - 根据选择值过滤 angularjs 中的结果

转载 作者:行者123 更新时间:2023-12-04 00:41:40 24 4
gpt4 key购买 nike

这似乎应该很容易,但我是 angular 的新手,并没有很好地掌握这个概念。我希望在数据集上运行 ng-repeat,然后能够使用完全相同的数据集根据选择框中的选定选项过滤结果。

我创建了一组选项并将它们分配给变量 $scope.OurTeamCategories。

angular.module('app', [])
.controller('Main', ['$scope', function($scope) {
$scope.ourTeamCategories = [
{"id":18,"title":'Management'},
{"id":19,"title":'Administration'},
{"id":21,"title":'Designers'},
{"id":22,"title":'Accounts'},
]
}]);

然后在 HTML 文件中,我使用 ng-options 动态创建选择框,并使用 ng-repeat 创建这些类别的列表。这一切正常,但现在我希望能够过滤
<div ng-app="app">
<div ng-controller="Main">
<select name="show-filter" ng-model="catFilter" ng-options="category.title for category in ourTeamCategories">
<option value="{{category.id}}"></option>
</select>

<li ng-repeat="cat in ourTeamCategories">
<h3>{{cat.title}}</h3>
<!-- for testing -->
<b>input: {{catFilter.id}}</b> - - ID: {{cat.id}}
</li>
</div>
</div>

我以为我可以按以下方式运行过滤器,但出现错误。谁能告诉我我做错了什么?
<li ng-repeat="cat in ourTeamCategories | filter {cat.id:catFilter.value}">

我在这里创建了一个plunker: http://plnkr.co/edit/YwHknAm3X2NUdxDeUjS8?p=preview

最佳答案

您需要在您的文件管理器中提及直接 ID,例如 id将通过 ourTeamCategories 查找id & 为了获得更准确的结果,请添加 true最后将确保精确匹配,而不是包含和漏掉冒号 :

<li ng-repeat="cat in ourTeamCategories | filter : {id: catFilter.id}: true">

更新

您同时混淆了两种方法,例如 ng-optionsng-repeat .我认为你应该坚持使用 ng-options ,所以在你当前的 ng-option 中设置 title您的值(value) ng-model
<select name="show-filter" ng-model="catFilter" 
ng-options="category as category.title for category in ourTeamCategories">
</select>

Forked Plunkr这里

关于angularjs - 根据选择值过滤 angularjs 中的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30922148/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com