2016-05-05 12 views
1

私はオブジェクトフィールドの値をチェックする必要があり、それに応じてReactiveVar変数を設定したいとします。 しかし、このフィールドは単なるオプションなので、まったく存在しないかもしれません。値をチェックする正しい方法は何ですか?未定義の変数値をチェックする方法は?

私がちょうどvar result = (data.profile.anyField == 'something')を使用するのであれば、anyFieldundefinedを使用できないため、プロファイルが設定されていないとエラーが発生します。

は、だから私はこのようにそれを行うだろうが、私はそれが少し賢くして行うことができると思う短い:

var modus; 
if (Data.profile) modus = (Data.profile.anyField == 'something') ? 'setValue' : ''; 
else modus = ''; 

this.modus = new ReactiveVar(modus); 

をそしてmodusの値を設定することが正しい場合は、2番目の質問です空の文字列ですか?

this.modus = new ReactiveVar('setValue'); // if modus is true 
this.modus = new ReactiveVar();   // if modus is false 
+0

何で空の文字列を置き換え'ReativeVar'は何をしますか?空の文字列を渡すことができるかどうかに依存します。あなたは 'var modus = data && data.profile && data.profile.anyField == '何か'を行うことができますか? 'setValue': ''; ' – putvande

答えて

1

質問1:

ワンライナー:

new ReactiveVar(Data.profile && Data.profile.anyField == 'something' ? 'setValue' : ''); 

質問2:結果はこのようにする必要があり

undefined

関連する問題