Angular JS 路由参数选项有限

Angular JS route parameters with limited options

我刚开始使用 Angular,目前使用的是 1.4.2。 我想知道如何让 URL、/:type 只有三个选项 - 创建、更新和查看。

他们都使用相同的控制器,所以我不想有单独的时间,例如

.when('/create ... , .when('/update ... , .when('/view ... .

除了这些,我不希望传递任何其他选项。 如果我能得到一些帮助,那就太好了! 谢谢:)

但是你想要 3 个不同的 url?如果您不想声明多个 when,您应该使用 ui-router 和 stateHelperProvider 来使用子语句。你应该可以做类似

的事情
stateHelperProvider.state({
            name: 'root',
            template: '<ui-view/>',
            abstract: true,
            children: [
                    {
                        name: 'create',
                        url: '/create',
                        templateUrl: 'mypath.html',
                        controller: 'myCtrl',
                        data: {
                            type: 'create'
                        }
                    },
                {
                    name: 'view',
                    url: '/view',
                    templateUrl: 'mypath.html',
                    controller: 'myCtrl',
                    data: {
                        type: 'view'
                    }
                },
                {
                    name: 'update',
                    url: '/update',
                    templateUrl: 'mypath.html',
                    controller: 'myCtrl',
                    data: {
                        type: 'update'
                }
                },
            ]
            });

whit 每次数据与您的数据。 但我不明白你为什么不申报 3 "when"

您可以只从您的控制器上的 $routeParams 服务获取参数,然后用它做任何您想做的逻辑。参见 https://docs.angularjs.org/api/ngRoute/service/$routeParams

路由配置

$routeProvider
    .when("/yourroute/:type", {
        template: "default"
        templateUrl: "template.html",
        controller: "Controller"
    });

控制器功能

function Controller($routeParams) {
    switch($routeParams.type) {
        case "create":
            ...
        case "update":
            ...
        case "view":
            ...
        default:
            ...
    }
}