Angular UI Route-使用state更改url

时间:2014-07-26 21:23:52

标签: angularjs angular-ui-router

我正在使用Angular ui-router并定义了我的路线。但问题是它改变了状态,但也改变了网址,而这并不是使用ui-router的意图。我不确定我在这里做错了什么,需要对下面的代码提出一些建议

app.config(['$stateProvider', '$urlRouterProvider', function ($stateProvider, $urlRouterProvider) {

        $urlRouterProvider.otherwise('/');

        $stateProvider
            .state('ManageUser', {
                url: '/manager-user',
                templateUrl: '/app/user/manage_users.html'
            })
            .state('ManageUserSetting', {
                url: '/user-setting',
                templateUrl: '/app/user/settings_normal.html'
            });
    }]);

1 个答案:

答案 0 :(得分:2)

如果你想改变状态而不改变URL就像从相关状态省略url参数一样简单:

    $stateProvider
        .state('ManageUser', {
            url: '/manager-user',
            templateUrl: '/app/user/manage_users.html'
        })
        .state('ManageUserSetting', {
            templateUrl: '/app/user/settings_normal.html' // url is still '/manager-user/'
        });



也就是说,在大多数情况下,使用angular-ui-router 想要更改网址。 angular-ui-router的主要目的是能够nest views,然后才能直接链接到view states

Watch this video有关ui-routerngRoute之间差异的说明)

如果您在上面描述的情况下只想在嵌套视图中显示某些用户设置而不更改URL,那么最好使用ng-show来切换设置。选择是你的。

Here is an example我把两者混为一谈。如果你想详细解释,请告诉我。