我需要检查对象字段的值,并根据该值设置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
最佳答案
问题1:
单线:
new ReactiveVar(Data.profile && Data.profile.anyField == 'something' ? 'setValue' : '');
问题2:
将空字符串替换为
undefined