如何刷新angularJS项目的index.htm?

时间:2019-04-25 09:19:52

标签: angularjs routing angular-ui-router

我使用angularJs制作了一个应用程序,并且那里有很多视图。我也经常进行路由工作。我的问题是,我有一个包含搜索栏的索引页。该搜索栏必须根据当前路径切换其控制器。但是,由于搜索栏属于索引页面,因此它不会刷新其路径(如果我错了,请纠正我)。

是否可以强制重新加载整个页面,或者有更好的解决方案?

2 个答案:

答案 0 :(得分:0)

根据您的要求,搜索栏不应放置在index.html上。

一个更好的解决方案是,您可以创建一个共享的HTML页面,该页面可以根据当前路径切换其控制器。

答案 1 :(得分:0)

您可能希望将其进一步拆分,并提供以下内容:

  • 包含输入,历史记录等的searchBar指令/组件。
  • 当搜索文本更改时,searchBar可以调用的
  • SearchService服务。这也将允许其他组件连接。

例如,如果您有多个控制器:

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。