在AngularJS中更改URL时保留$ location.search()?

时间:2015-07-19 06:42:26

标签: angularjs

在AngularJS v1.3.15中,我使用$ location.search来跟踪一些需要在位置变化后存活的信息。 I.E.如果用户处于待定状态,并点击“捐赠”,我希望用户转到“捐赠”并保留搜索字词:

http://localhost:8080/MyApp/#/Pending?storeName=FunHouse

http://localhost:8080/MyApp/#/Giving?storeName=FunHouse

有什么命令可以实现这一目标?

1 个答案:

答案 0 :(得分:0)

您可以使用有角度的localStorage

您获取位置网址参数:

var searchUrl = $location.search();
// => { storeName : 'FunHouse' }

您可以将其作为参数传递给localStorage set函数:

myApp.controller('MainCtrl', function($scope, localStorageService) {  
   localStorageService.set('pending-url', searchUrl);     
});

然后当您使用giving网址时,您会将搜索字词保存到位置存储并附加到网址。如果您已经在网址上附加了一些参数,则需要清除它们。您可以将当前网址设置为$location

$location.url($location.path());
myApp.controller('MainCtrl', function($scope, localStorageService) {  
   var url = localStorageService.get('pending-url');     
   $location.search(url);
});