Angular $ route根据路由更改URL

时间:2016-06-10 09:54:55

标签: javascript angularjs angular-ui-router

我正在使用angular js编写一个简单的产品信息管理应用程序。为了使我的应用程序尽可能模块化,我将它分成多个模块,其中一个模块“pim”作为起始点。对于每个模块,我想要一个不同的路由,这样就可以很容易地插入一个新模块或删除它,而无需在pim模块配置中维护一个巨大的路由。

目前我有两条路线(第一条路线):

(function(){
angular 
    .module("pim")
    .config(router)

function router($routeProvider){
    $routeProvider
        .when("/",{
            templateUrl: "view/info.html",
            controller: "pimController"
        })
        .when("/info",{
            templateUrl: "view/info.html",
            controller: "pimController"
        })
        .when("/alcohol",{
            templateUrl: "view/alcohol.list.html",
            controller: "alcoholController"
        });
    }
})();

第二条路线

(function(){
angular 
    .module("alcohol")
    .config(router)

function router($routeProvider){
    $routeProvider
        .when("/alcohol/list",{
            templateUrl: "view/alcohol.list.html",
            controller: "alcoholController"
        })
        .when("/alcohol/info",{
            templateUrl: "view/alcohol.info.html",
            controller: "alcoholController"
        });
    }
})();

正如你所看到的,/ alcohol有一个templateUrl和一个控制器,与/ alcohol / list相同,但我想知道是否有一种简单的(标准的)方法可以改为另一个URL,例如/ alcohol / list,所以我不必重复templateUrl和控制器,并将这些信息保存在它所属的酒精模块中。

例如

.when("/alcohol",{
    routeTo: "/alcohol/list"
})

感谢您的帮助

解决

存在重定向选项,没有充分考虑$ routeProvider文档:

.when("/alcohol",{
     redirectTo:"/alcohol/list"
});

上面的代码

1 个答案:

答案 0 :(得分:4)

您可以使用$routeProvider的{​​{1}}路线图。

redirectTo

了解详情:https://docs.angularjs.org/api/ngRoute/provider/$routeProvider