我需要检查对象字段的值,并根据该值设置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的值设置为空字符串是否正确?结果应该是这样的:

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

09-17 14:30