我使用angularJs制作了一个应用程序,并且那里有很多视图。我也经常进行路由工作。我的问题是,我有一个包含搜索栏的索引页。该搜索栏必须根据当前路径切换其控制器。但是,由于搜索栏属于索引页面,因此它不会刷新其路径(如果我错了,请纠正我)。
是否可以强制重新加载整个页面,或者有更好的解决方案?
答案 0 :(得分:0)
根据您的要求,搜索栏不应放置在index.html上。
一个更好的解决方案是,您可以创建一个共享的HTML页面,该页面可以根据当前路径切换其控制器。
答案 1 :(得分:0)
您可能希望将其进一步拆分,并提供以下内容:
例如,如果您有多个控制器:
searchService.onSearch(function(searchFor){....});
然后,每个控制器都可以向SearchService提供搜索侦听器。您无需在searchBar中“更改控制器”,也无需对SearchService进行任何实际更改,除非进行了增强。但是,每个活动的Controller现在都可以执行自己的搜索。
在我使用的类似方法中,我有(MemberController):
searchService.onLookup(function(lookup){ ... perform lookup to populate drop down ...});
searchService.onSelected(function(selected) { ... now get all the information re: selected member ...});
如果由于嵌套而具有多个视图,则可以使用addOnSearch()来提供回调列表,但这需要您正确删除它们$ onDestroy。