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

AngularJS - ng-repeat not updating to correct results using filters

我有一个 ng-repeat 像这样:

<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>

我还在页面顶部有几个搜索过滤框(inputs/select 框),用户可以使用它们来过滤他们的搜索结果。一个例子是搜索框(如下:

<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)。它似乎对我的许多搜索过滤器都适用。

我无法解决,感谢您的帮助。

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

<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>