【问题标题】:AngularJS - ng-repeat not updating to correct results using filtersAngularJS - ng-repeat 不更新以使用过滤器更正结果
【发布时间】:2016-06-14 09:22:31
【问题描述】:

我有一个像这样的 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>

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

<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)。我的许多搜索过滤器似乎都是这样做的。

我就是搞不定,谢谢你的帮助。

【问题讨论】:

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


    【解决方案1】:

    由于某种原因,解决方案真的很奇怪。通过调整我的 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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-06-22
      • 1970-01-01
      • 2015-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多