使用三元运算符有条件地设置字段的值

时间:2015-04-11 15:44:18

标签: javascript meteor

我有一个对象,我想将其中一个字段设置为使用对象中另一个字段的值查询数据库的返回。以下方法返回null,因为我确定它不对,但我无法找到最佳方法。

如果shared_user_email为空,则

shared_user应为空,但如果填充了shared_user,它应表示数据库查询的返回。

我知道javascript变量在运行时被提升到应用程序的顶部,但我似乎成了这里操作顺序的牺牲品。

    var newList = {
        title: $(ev.target).find('[name=title]').val(),
        description: $(ev.target).find('[name=description]').val(),
        dateCreated: today.toDateString(),
        owner: Meteor.userId(),
        owner_email: Meteor.user().emails[0].address,
        shared_user: $(ev.target).find('[name=shared_user]').val(),
        shared_user_email: shared_user_email_field
    }

    var shared_user_email_field = (newList.shared_user != '') ? Meteor.users.find({_id: $(ev.target).find('[name=shared_user]')
        .val()}).fetch()[0].emails[0].address : '';

修改

这是在创建对象后立即调用的服务器端方法,该方法将newList传递给服务器:

    Meteor.call('addList', newList, function(err, list){
        console.log(shared_user_email_field);
        return list;
    });

1 个答案:

答案 0 :(得分:0)

    var newList = {
        title: $(ev.target).find('[name=title]').val(),
        description: $(ev.target).find('[name=description]').val(),
        dateCreated: today.toDateString(),
        owner: Meteor.userId(),
        owner_email: Meteor.user().emails[0].address,
        shared_user: $(ev.target).find('[name=shared_user]').val(),
        shared_user_email: ''
    }

    newList.shared_user_email = (newList.shared_user != '') ? Meteor.users.find({_id: $(ev.target).find('[name=shared_user]')
        .val()}).fetch()[0].emails[0].address : '';