我有一个网络应用程序,在不同的应用程序中有一个入口点.
因此,当用户访问我的应用程序时,他们在URL中有一些参数,如下所示:
因此,当用户访问我的应用程序时,他们在URL中有一些参数,如下所示:
http://myapp.com/#/new?param1=value\u0026amp;param2=value2
在我的应用程序中,我有3-4个选项卡,每个选项卡都是自己的状态,可以通过ui-sref =“state”访问
问题是,当我切换到任何这些状态时,我会丢失用户最初输入的参数.
简而言之,当我切换状态时,我想要http://myapp.com/#/differentstate?param1=value\u0026amp;param2=value2而不是http://myapp.com/#/differentstate.
我不知道如何设置……
谢谢!
解决方法
在你的角度应用程序的.run()函数内你可以这样做:(你需要DI $rootScope和$location)
var locationSearch; $rootScope.$on('$stateChangeStart',function (event,toState,toParams,fromState,fromParams) { //save location.search so we can add it back after transition is done locationSearch = $location.search(); }); $rootScope.$on('$stateChangeSuccess',fromParams) { //restore all query string parameters back to $location.search $location.search(locationSearch); });