AngularJS - ng-repeat不使用过滤器更新以更正结果

时间:2016-06-14 09:22:32

标签: javascript angularjs filter angularjs-ng-repeat angularjs-ng-change

我有像这样的重复:

<div class="event block block--fullwidth nga-default nga-stagger nga-fade" data-ng-repeat="event in (filteredEvent = (Events.events | filter:Events.query | myDateRange:Events.dateFrom:Events.dateTo:Events.specificDate | orderBy:Events.orderEvent)) | limitTo:Events.limit"></div>

我还在页面顶部(输入/选择框)有一些搜索过滤器框,用户可以使用它们过滤搜索结果。一个例子是搜索框(如下所示:

<input id="txt1" class="input--fullwidth" type="text" data-ng-model="Events.query.TotalLocation" placeholder="Enter a region, place or postcode" data-ng-change="Events.limit = 6" />

这种方式很有效,因为在您开始输入搜索框时结果会更新。但是,当您按退格键使搜索框为空时,它不会返回原始搜索长度(首次加载时可能为992,但退格时最终为940)。它似乎与我的许多搜索过滤器一起使用。

我无法解决问题,谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

出于某种原因,解决方案真的很奇怪。通过调整我的ng-repeat来包含一个具有ng-repeat变量的数据attr似乎可以使它工作。 E.g。

<div class="event block block--fullwidth nga-default nga-stagger nga-fade" data-ng-repeat="event in (filteredEvent = (Events.events | filter:Events.query | myDateRange:Events.dateFrom:Events.dateTo:Events.specificDate | orderBy:Events.orderEvent)) | limitTo:Events.limit" data-var="{{filteredEvent.length}}"></div>