【问题标题】:Changing URL without reloading in AngularJS在 AngularJS 中更改 URL 而不重新加载
【发布时间】:2016-08-08 11:12:39
【问题描述】:

我有一个函数可以在单击按钮时更改 URL。

问题:

AngularJS 显然会在 URL 更改时自动重新加载。

var newUrl = ($state.current.url).replace('{navigationId}', $stateParams.navigationId).replace('{tabId}', tab.stateReference);
history.pushState('', tab.stateReference, newUrl);

如何在不重新加载 AngularJS 页面的情况下更改 URL?

编辑:

我尝试使用reloadOnSearch: false,如下所述:https://docs.angularjs.org/api/ngRoute/provider/$routeProvider - 但它仍会重新加载页面。

【问题讨论】:

    标签: javascript angularjs html


    【解决方案1】:

    对于要导航的每个州,您都应该拥有$state。然后你可以$state.go到特定的状态

    $state.go('toState');
    

    如果你想将参数传递给$state,那么你应该将它们传递给$state.go

    $state.go('view', { 'index': 123, 'anotherKey': 'This is a test' });
    

    确保您的$state 已准备好接受params 上的这些参数

    .state('full', {
                url: '/full',
                templateUrl: 'js/content/templates/FullReadView.html',
                params: { opmlFeed:null, source:null },
                controller: 'FullReadCtrl'
            })
    

    更多内容请关注Wiki

    【讨论】:

    • 可能这就是我做错了什么。基本上我使用一种状态.state('tables'...,视图由 md-tabs(角度材料)更改。所以我不能使用$state.go()。我现在不能真正改变所有系统了,它相当大..:/ - 我找到了docs.angularjs.org/api/ngRoute/provider/$routeProvider“reloadOnSearch”并试图将它设置为false,但我认为它没有做任何事情——可能是因为我使用了.state而不是路线?!
    猜你喜欢
    • 1970-01-01
    • 2013-04-19
    • 1970-01-01
    • 1970-01-01
    • 2016-04-12
    • 1970-01-01
    • 2016-01-12
    • 2011-06-25
    • 2010-12-28
    相关资源
    最近更新 更多