我在页面上有一个属性,我想反映在特定页面中的URL.
我已经设置reloadOnSearch:false了该页面.
当页面加载时,它会读取local storage并保存该属性,它会将其值添加到搜索中.但是,这会添加一条历史记录,所以我点击后back会得到没有搜索参数的网址.
我需要避免双背压.
这是我制作的一个片段(我会尝试让它在plunkr上运行)
我的HTML文件(snippet.html)
<html ng-app="snippet">
<head>
<script src="bower_components/angular/angular.js"></script>
<script src="bower_components/angular-route/angular-route.js"></script>
<script src="snippet.js"></script>
</head>
<body ng-view="">
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我的JavaScript文件(snippet.js)
angular.module('snippet',['ngRoute']).config(function( $routeProvider ){
$routeProvider.when('/so', {
'template' : 'this is my template',
'controller' : 'SnippetCtrl',
'reloadOnSearch':false
}).when('/first', {
'template' : '<a href="snippet.html#/so">go here</a>'
})
.otherwise({
redirectTo : '/first'
// redirectTo: '/public/session/login'
});
});
angular.module('snippet').controller('SnippetCtrl', function($location, $scope){
$scope.name = 'guy';
$location.search('hello','world')
});
Run Code Online (Sandbox Code Playgroud)
#/first #/so然后立即#/so?hello=world#/so- 我想避免这种情况经过3天的试错,我发布这个问题10分钟后,我找到了答案......
而不是使用$ location.search(...)我应该做$ location.search(...).replace()
在3.5年后找到了我自己的q/a .. #gottaLoveStackoverflow ..似乎在更高版本的角度我不得不拆分调用.
$location.search(...)
$location.replace()
Run Code Online (Sandbox Code Playgroud)
链接它们会产生错误.
并根据角度文件记录
如果调用,当前$摘要期间对$ location的所有更改都将替换当前的历史记录,而不是添加新的历史记录.
所以要小心使用.
| 归档时间: |
|
| 查看次数: |
1107 次 |
| 最近记录: |