state.go angularjs中参数的默认值

时间:2016-10-27 01:42:28

标签: javascript angularjs

我已在cyl mean(disp) mean(drat) group 4 105 4.07 mpg>15 6 183 3.59 mpg>15 8 105 3.20 mpg>15 4 89 4.53 drat>4.2 8 351 4.22 drat>4.2 制作路线,我需要在app.js网址中收到两个参数。

upsr

如何在不发送以下任何参数的情况下使用.state('upsr', { url: '/upsr/:QuestionIdIndex/:LangId', templateUrl: 'modules/study/question/question-details.html', controller: 'upsrCtrl' })

$state.go

而不是:

$state.go('upsr');

注意:如果没有任何参数,则将其设置为默认值。例如

$state.go('upsr',{
    QuestionIdIndex : 0,
    LangId:0
});

我的问题是如果我只使用QuestionIdIndex = 0; LangId = 0; 则会出错。

任何想法如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

您可以在定义州时使用params选项来实现此目的。

  

注意:可选参数需要angular-ui-router@1.0.0-beta.3,因此它将与$urlRouterProvider.otherwise('/upsr');匹配

.state('upsr', {
   url: '/upsr/{QuestionIdIndex}/{LangId}',
   params: {
      QuestionIdIndex: { value: 0 },
      LangId: { value: 0 }
   },
   templateUrl: 'modules/study/question/question-details.html',
   controller: 'upsrCtrl'
})

答案 1 :(得分:0)

您需要将它们设为optional parameters

state('upsr', {
   url: '/upsr/:QuestionIdIndex?/:LangId?',
   templateUrl: 'modules/study/question/question-details.html',
   controller: 'upsrCtrl'
})