Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 如何在动态添加新结果的情况下过滤结果?_Angularjs - Fatal编程技术网

Angularjs 如何在动态添加新结果的情况下过滤结果?

Angularjs 如何在动态添加新结果的情况下过滤结果?,angularjs,Angularjs,我使用的是一个无限滚动程序包,它动态加载结果。我有一组过滤器,根据选择的过滤器显示我想要的结果 结果不会以任何过滤顺序返回前端。我想要实现的是让未过滤的结果返回到我可能已经选择的过滤状态 例如,一个过滤器是星级,假设我在过滤器中选择了三星和四星。如何获得新加载的结果以在该筛选器中返回 我想我可以将过滤器发送回后端,专门请求我正在寻找的内容,但我正在寻找角度解决方案 以下是ng repeat,它在每个酒店中迭代,我希望任何新加载的结果都要经过任何已选择的过滤器: <div ng-repeat

我使用的是一个无限滚动程序包,它动态加载结果。我有一组过滤器,根据选择的过滤器显示我想要的结果

结果不会以任何过滤顺序返回前端。我想要实现的是让未过滤的结果返回到我可能已经选择的过滤状态

例如,一个过滤器是星级,假设我在过滤器中选择了三星和四星。如何获得新加载的结果以在该筛选器中返回

我想我可以将过滤器发送回后端,专门请求我正在寻找的内容,但我正在寻找角度解决方案

以下是ng repeat,它在每个酒店中迭代,我希望任何新加载的结果都要经过任何已选择的过滤器:

<div ng-repeat="hotel in (filteredHotels = (hotelResults |  hotelRatingsFilter:ratings)) | startFrom:(currentPage - 1)*10 | limitTo:10 " class="hotel-results-container">
  <ul>
   <li>{{hotel.starRating}}</li>
  </ul>
</div>

谢谢

我发现这篇文章说,如果数据有任何更改,angular将迭代数组。看起来继续添加到数据数组是安全的,任何已经使用的过滤器都将被angular应用到更新的数据数组中

第六步说:

在阵列上添加一个手表,如果阵列发生任何变化,将再次触发步骤1


你能展示一下你的一些代码吗?我已经添加了ng重复代码,我不确定还有什么有用的。如果我能提供其他有用的东西,请询问:获取数据和设置的$http部分,也共享代码,这也会有帮助。您是否在单个请求中获取所有行?我理解正确吗?我在第一个请求中得到前10行,在下一个请求中得到下10行,等等。
.constant('HOTEL_SEARCH_CONSTANTS',{
    httpSettings:
    {
        url:'/hotel/hotelsearch/search',
        method:'POST'
    }
})



.service('hotelSearchService',     ['CachedObservable','$http','HOTEL_SEARCH_CONSTANTS','HOTEL_CONSTANTS','baseSearchSettings','loadingScreen',
   function(CachedObservable,$http,HOTEL_SEARCH_CONSTANTS,HOTEL_CONSTANTS,baseSearchSettings,loadingScreen){
CachedObservable.call(this)
var _this = this,
    p

this.search = function(searchParameters){
    var config = HOTEL_SEARCH_CONSTANTS.httpSettings
    var currentSearch = angular.extend(searchParameters,baseSearchSettings)
    config.data = {
        basicSearch: baseSearchSettings,
        hotelSearch: searchParameters
    }

    _this.update(p=$http(config), angular.extend(angular.copy(searchParameters),baseSearchSettings) )
    //Alert subscribers with both the promise and the search parameters
    //used

    loadingScreen.newSearch.update(p,HOTEL_CONSTANTS.loadingTemplates.loadingMessageTemplate)
    //Trigger a loading screen and specify the template to use
}

}])