2016-04-27 4 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

サイドノート - それは* 3進*オペレータと呼ばれています – Hacknightly

+0

サイドノート - あなたは配置できません:と?一緒に – Redu

答えて

2

あなたが近くにあります。これを試してみてください:

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

なぜ '$ stateParams.processId'を2回割り当てているのですか? – hussain

+0

@hussain - それは2回割り当てられていません。 – RJM

+0

代わりに '||'を使うことができます。 – evolutionxbox

1

C#がないように残念ながら、JavaScriptをnull coalescing operatorを保有ものではありませんが、かなりこの構築物で同じ効果を達成できます。

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

を基本的にこれがparamId$stateParams.processIdに等しいことを意味しますそれ以外の場合はundefinedと異なる値があり、それ以外の場合は$stateParams.assessmentIdに等しい値がある場合。

+0

downvoteの理由は何ですか? –

+0

私は見ることができません。私はあなたの答えを好む。 – evolutionxbox