2016-04-27 323 views
-2

我有條件$stateParams$state,我正在嘗試將$stateParams的值分配給paramId。我如何使用三元運算符來實現這個任務?如何使用itenary運算符?

commonCtrl.js

var paramId = $stateParams.processId:? $stateParams.assessmentId; 

config.js

.state('app.addPrcChallenge', { 
      url: '/add/prcChallenge/:processId/:assessmentId?', 
      templateUrl: 'views/process/processChallenge.html', 
      controller: 'ProcessChallengesCtrl', 
      data: { 
       authenticate: true 
      }, 
+2

附註 - 它被稱爲*三元*操作符 – Hacknightly

+0

附註 - 您不能放置:和?一起 – Redu

回答

2

你接近。試試這個:

var paramId = $stateParams.processId ? $stateParams.processId : $stateParams.assessmentId; 
+0

爲什麼我們分配'$ stateParams.processId'兩次? – hussain

+0

@hussain - 它不會分配兩次。 – RJM

+0

你可以用'||'來代替。 – evolutionxbox

1

不幸的是JavaScript不擁有一種null coalescing operator像C#中,但你可以做到幾乎與此構築體的相同效果:

var paramId = $stateParams.processId || $stateParams.assessmentId; 

基本上這意味着paramId將等於$stateParams.processId如果它有一些不同於undefined的值,否則等於$stateParams.assessmentId

+0

downvote的任何原因? –

+0

我看不到一個。我更喜歡你的答案。 – evolutionxbox