Javascript 从URL中删除$routeParams,而无需重新加载页面
我在角度应用程序中使用ngRoute,并使用Javascript 从URL中删除$routeParams,而无需重新加载页面,javascript,angularjs,ngroute,Javascript,Angularjs,Ngroute,我在角度应用程序中使用ngRoute,并使用$routeParams将指示器参数从我的/edit路线发送到我的/list路线 这是我的$routeProvider配置 $routeProvider.when('/edit', { controller: 'editController', templateUrl: 'templates/editForm.html' }).when('/list', { controller: 'listController', t
$routeParams
将指示器
参数从我的/edit
路线发送到我的/list
路线
这是我的$routeProvider
配置
$routeProvider.when('/edit', {
controller: 'editController',
templateUrl: 'templates/editForm.html'
}).when('/list', {
controller: 'listController',
templateUrl: 'templates/list.html'
}).when('/list/:indicator', {
controller: 'listController',
templateUrl: 'templates/list.html'
}).when('/', {redirectTo: '/listContacts'});
当有人在我的编辑页面上单击“保存”时,我会重定向回列表页面,其中有一个指示器,指示是否成功
如果成功:
$window.location.href = "#/list/success";
$window.location.href = "#/list/error";
如果不成功:
$window.location.href = "#/list/success";
$window.location.href = "#/list/error";
这将正确重定向到“我的列表”页面,并根据指示器显示成功或错误消息。这就是我如何检测指示器并在我的listController
中显示消息的方式
var indicator = $routeParams.indicator;
if (indicator) {
if (indicator == 'success') {
//show success message
} else if (indicator == 'error') {
//show error message
}
}
现在,在检查指示符route参数后,我想从浏览器中显示的URL中删除route参数,而不必重新加载页面
如果我修改$window.location.href
以删除指示器,页面将重新加载
我已经看到了许多使用$location.search('key',null)
的建议,但在这种情况下这不起作用,因为ngRoute的参数是作为路由的一部分传递的,而不是在?
后面的键值对中传递的
我还看到一个建议,就是只设置$routeParams=null
,但这对我也不起作用
我怎样才能改变
mysite.com/myapp/#/list/success
到
mysite.com/myapp/#/list
在浏览器中显示的URL中,无需重新加载页面/路由?最好使用服务跟踪
指示器和/或解析。也不明白为什么不能使用搜索参数。可以在不重新加载的情况下更改搜索