12

如何重定向或更新网址?我找不到任何关于此的好的文档。基本上,我想做的是动态更改 $routeParams 并使用新值更新 url。

我的代码如下所示:

if ($routeParams.time) {
        var url;
        $routeParams.time = encodeURIComponent(value);
        url = '/' + $routeParams.time + '/' + 'marketing/networks';
        $location.path(url);
    } else {
        $routeParams.time = encodeURIComponent(value);
        url =  '/' + $routeParams.time + $location.path();
        $location.path(url);
    }
4

3 回答 3

23

在阅读了我的答案的评论后,我认为这可能不是这个案例的正确答案。请在使用此解决方案之前阅读评论和其他答案。我不再使用 Angular,所以我觉得没有资格回答。

我在下面未修改原始答案:

您正在正确更改位置,但 AngularJS 并没有意识到它已更改。您可以使用范围的“$apply”方法解决问题,如下所示:

$location.path( url );
$scope.$apply();

或者像这样:

$scope.$apply( $location.path( url ) );

在此处查看 $apply 文档http://docs.angularjs.org/api/ng.$ro​​otScope.Scope

于 2013-01-24T09:52:55.193 回答
3

$window.location.href根据http://docs.angularjs.org/guide/dev_guide.services.$location (in Caveatssection) ,您可能想尝试使用本机浏览器对象。

于 2012-10-09T21:47:54.287 回答
2

你应该使用https://angular-ui.github.io/

ui路由器

使用此功能时,您可以...

state.go("路由名称", {id:4});

比内置的路由服务好得多

投票最多的答案令人担忧!

于 2015-12-04T18:01:37.613 回答