Angular.js - ui路由器| 如何确保$ stateParams.anyParam的值是整数?

1 javascript angularjs angular-ui-router

下面是$ stateProvider配置的部分代码.我想在将appId参数传递给我的控制器之前将其检查为整数.如果可能,我怎么能在这里做到这一点?当前用户键入整个URL并为appId提供任何字符串,其中整数是预期的,然后我得到错误.例如"/ app/dfsad"而不是"/ app/12".我已将检查放在控制器中但我想在它传递给控制器​​之前检查它.谢谢.例如,如果value不是有效数字,我希望appId转换为0(默认情况下).谢谢!

.state('app', {
    url: '/app/:appId',
    templateUrl: 'app/components/project/project.html',
    controller: 'projectController',
    resolve: {
        loadPlugin: function ($ocLazyLoad) {
            return $ocLazyLoad.load([
                {
                    name: 'projectModule',
                    serie: true,
                    files: [
                            'app/components/project/projectCharts.js', 
                            'app/components/project/utils/projectUtils.js', 
                            'app/components/project/projectModule.js'
                           ]

                }

            ]);
        }
    }
})
Run Code Online (Sandbox Code Playgroud)

mat*_*ieu 6

ui-router支持这种行为:https://github.com/angular-ui/ui-router/wiki/URL-Routing

您可以在url中指定类型:

url: '/app/{appId:int}'
Run Code Online (Sandbox Code Playgroud)

否则,你可以看看$ stateProvider,在回调的OnEnter,在其中您可以更改参数,这可能会帮助你(但我会代替{appId:int}通过:appId,允许进入状态.不知道这是真的前控制器已创建.