如何在“$stateProvider”angularJs中有条件地格式化url



我的$stateProvider提供:

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

在上面的网址中,我传递了两个id的一个是:学生证和另一个是:学校ID在这里,我想在上述两个提及 id 上有条件地格式化 url。预期

如果

studentId !== nullschoolId === null

那么网址应该是/result/student/:studentId/display

否则如果

studentId === nullschoolId !== null

那么网址应该是/result/school/:schoolId/display的。

您可以使用三元运算符,并基于它形成 url。

尝试下面的代码。

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 
        });

最新更新