我在我的角应用程序中使用ngRoute并使用$routeParams
从我的indicator
路径发送/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";
这会正确地重定向到我的列表页面,并根据指示符显示成功或错误消息。这是我检测指标并在listController
显示消息的方式。
var indicator = $routeParams.indicator;
if (indicator) {
if (indicator == 'success') {
//show success message
} else if (indicator == 'error') {
//show error message
}
}
现在,在我检查指标路由参数后,我想从浏览器中显示的URL中删除路由参数,而不重新加载页面。
如果我修改$window.location.href
以删除指标,则会重新加载页面。
我已经看到很多使用$location.search('key', null)
的建议,但在这种情况下不会起作用,因为ngRoute的参数作为路径的一部分传递,而不是在之后的键值对中传递?
。
我也看到了设置$routeParams = null
的建议,但这对我也不起作用。
如何更改
mysite.com/myapp /#/列表/成功
到
mysite.com/myapp /#/列表
在浏览器中显示的URL中,没有重新加载页面/路由?