AngularJS动态野卡路由

问题描述 投票:0回答:1

我是一个完全陌生的Angular,我想整理一些动态wildcard路由,这样我就不用手动定义每个页面了。

我有一个这样的模块。

function() {
    "use strict";
    angular.module("app", ["ngRoute", "ngAnimate", "ui.bootstrap", "easypiechart", "ui.tree", "ngMap", "ngTagsInput", "angular-loading-bar", "app.controllers", "app.directives", "app.localization", "app.nav", "app.ui.ctrls", "app.ui.directives", "app.ui.services", "app.ui.map", "app.form.validation", "app.ui.form.ctrls", "app.ui.form.directives", "app.tables", "app.task", "app.chart.ctrls", "app.chart.directives", "app.page.ctrls"]).config(["$routeProvider", function($routeProvider) {
        var routes, setRoutes;
        return routes = ["dashboard", "pages/404", "actions/ActionOne", "actions/ActionTwo"], setRoutes = function(route) {
        //                                                    ^      and      ^
            var config, url;
            return url = "/" + route, config = {
                templateUrl: "views/" + route + ".html"
            }, $routeProvider.when(url, config), $routeProvider
        }, routes.forEach(function(route) {
            return setRoutes(route)
        }), $routeProvider.when("/", {
            redirectTo: "/dashboard"
        }).when("/404", {
            templateUrl: "views/pages/404.html"
        }).otherwise({
            redirectTo: "/404"
        })
    }])

ActionOne and ActionTwo 是一些操作页面的例子,但可能有几十种,而且有时会改变。

我如何设置它来支持一个通配符(例如。actions/:action),这样我就可以使用该参数来动态确定路径?


angularjs routes angular-ui-router
1个回答
0
投票

意识到我不能把它添加到这里定义的路由数组中;用指定的 when() 句法,就万事大吉了。

function() {
    "use strict";
    angular.module("app", ["ngRoute", "ngAnimate", "ui.bootstrap", "easypiechart", "ui.tree", "ngMap", "ngTagsInput", "angular-loading-bar", "app.controllers", "app.directives", "app.localization", "app.nav", "app.ui.ctrls", "app.ui.directives", "app.ui.services", "app.ui.map", "app.form.validation", "app.ui.form.ctrls", "app.ui.form.directives", "app.tables", "app.task", "app.chart.ctrls", "app.chart.directives", "app.page.ctrls"]).config(["$routeProvider", function($routeProvider) {
        var routes, setRoutes;
        return routes = ["dashboard", "pages/404", "pages/500"], setRoutes = function(route) {
            var config, url;
            return url = "/" + route, config = {
                templateUrl: "views/" + route + ".html"
            }, $routeProvider.when(url, config), $routeProvider
        }, routes.forEach(function(route) {
            return setRoutes(route)
        }), $routeProvider.when("/", {
            redirectTo: "/dashboard"
        }).when("/actions/:name", {
            templateUrl: "views/pages/action.html"
        }).when("/controls/:name", {
            templateUrl: "views/pages/control.html"
        }).when("/404", {
            templateUrl: "views/pages/404.html"
        }).otherwise({
            redirectTo: "/404"
        })
    }])
© www.soinside.com 2019 - 2024. All rights reserved.