我正在为房间创建搜索和过滤应用程序。用户能够搜索房间名称(例如,会议室101)并且还能够添加过滤器以缩小其搜索范围(例如,容量= 6)。我试图找到一个很好的解决方案,如何设置我的服务和控制器,并提出以下解决方案:
filterService通过UI更新filterService并进行广播(' run:search')。然后,它会触发searchResultsCtrl,向searchResultsService请求更新的searchResults。当用户键入搜索字段(更新searchFieldCtrl,然后更新searchFieldService)时,会发生相同的过程。
一旦searchResultsService收到请求,它将从roomService获取所有房间,使用filterService内的applyFilters应用过滤器,然后获取searchField并过滤掉剩余的房间。
使用广播这是一个很好的解决方案还是有一个我错过的更好的解决方案?
编辑:我已为过滤器添加了工作流程图。 searchField也会执行相同的工作流程,但会更新searchFieldCtrl和searchFieldService。