我有一个转发器设置基于一些东西进行过滤。但是,我在过滤子属性时遇到问题。我有一个填充了类别ID的选择器:
<select id="searchByCategory" class="form-control ng-pristine ng-valid" ng-model="categoryFilter">
<option value="">Filter By Category</option>
<option value="1">Music</option>
<option value="4">Sports</option>
<option value="18">Theater</option>
<option value="19">Exhibit/Class</option>
<option value="21">Other</option>
</select>
转发器:
<div class="row tableCell" ng-repeat="event in events | filter: { DateBegin: DateBegin } | filter: search | filter: { Category.ID: categoryFilter }">
<h2 ng-show="$first">{{ event.DateBegin | date:'MMMM d, yyyy' }}</h2><br />
<a href="/EventDetails/{{ event.ID }}"><h1>{{ event.Name }}</h1></a>
<p>{{ event.Description }}</p>
<ul>
<li>Category ID: {{ event.Category.ID }}</li>
<li>Category Name: {{ event.Category.Name }}</li>
<li>Time Begin: {{ event.TimeBegin }}</li>
<li>Duration: {{ event.Duration }}</li>
</ul>
</div>
我知道Category.ID和Category.Name正在运行,因为它们显示在事件详细信息中。但是,只要我尝试从下拉菜单中选择一个类别,就不会显示任何事件。我的过滤器出了什么问题?
答案 0 :(得分:1)
你必须改变
filter: { Category.ID: categoryFilter }
到
filter: { Category: categoryFilter }
我在这个plunkr上做了一个演示,试着改变选择选项(看起来像你的情况)
http://plnkr.co/edit/vEVBEcnx3FLvXGJaElT3?p=preview
(此plnkr是根据https://docs.angularjs.org/api/ng/filter/filter上的演示编辑的)