如何在`$ stateProvider` angularJs

时间:2016-02-19 12:56:33

标签: angularjs angular-ui-router

我的$stateProvider提供:

$stateProvider.state('main.result', {
            'url': '/result'
                    + '/student/:studentId'
                    + '/school/:schoolId'
                    + '/display',
            'templateUrl':'/results/display.html',
            'controller': 'ExamDisplayController'
        });

在上面的网址中,我通过了两个id 一个是:studentId AND 另一个是:schoolId 在这里,我想有条件地在上面两个提到id的格式化url。 的预期

如果

studentId !== nullschoolId === null

然后网址应为 /result/student/:studentId/display

否则如果

studentId === nullschoolId !== null

然后网址应为 /result/school/:schoolId/display

1 个答案:

答案 0 :(得分:0)

您可以使用三元运算符,并根据它可以形成网址。

尝试以下代码。

url = '/result' + (studentId !== null AND schoolId === null) ? '/student/:studentId' : '' 
                    + (studentId === null AND schoolId !== null) ? '/school/:schoolId' : ''
                    + '/display',
            'templateUrl':'/results/display.html',
            'controller': 'ExamDisplayController'

$stateProvider.state('main.result', {
            'url': url 
        });