从URL中删除$ routeParams而不重新加载页面

时间:2015-10-29 16:39:54

标签: javascript angularjs ngroute

我在我的角应用程序中使用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中,没有重新加载页面/路由?

0 个答案:

没有答案