如何在转发器中过滤子属性?

时间:2014-05-16 17:39:17

标签: javascript angularjs

我有一个转发器设置基于一些东西进行过滤。但是,我在过滤子属性时遇到问题。我有一个填充了类别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正在运行,因为它们显示在事件详细信息中。但是,只要我尝试从下拉菜单中选择一个类别,就不会显示任何事件。我的过滤器出了什么问题?

1 个答案:

答案 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上的演示编辑的)