2016-05-05 2 views
1

Мне нужно проверить значение поля объекта, и в зависимости от этого я хочу установить переменную ReactiveVar. Но это поле просто необязательно, поэтому, возможно, оно вообще не существует. Каков правильный способ проверки значения?Как проверить значение переменной, если оно не определено?

Если бы я просто использовал var result = (data.profile.anyField == 'something'), я бы получил ошибку, так как не могу использовать anyField из undefined, если профиль не задан.

Так что я хотел бы сделать это так, но я думаю, что это может быть сделано немного умнее и короче:

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

this.modus = new ReactiveVar(modus); 

И второй вопрос, если правильно установить значение modus Ань пустая строка? Результат должен быть таким:

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

Смежные вопросы