Если еще условие в объекте данных в почтовом запросе - PullRequest
1 голос
/ 27 июня 2019

если еще не работает, я получаю сообщение об ошибке, что должно быть: до и после, что я делаю неправильно?

service.upsert = function (employerId, iban, canOrderCards) {
    let path = 'mask/employer/' + employerId + '/mask/account';
    let data = {
        if(iban == null ){
             isIbanSet: "no"
             }
            else{
              isIbanSet: "yes"
             },
           iban: iban, // string: if undefined the value will not be updated
        canOrderCards: canOrderCards // boolean: if undefined the value will not be updated
    };
    return AuthorizedNetworkService.performRequest(path, 'POST', data);
};

я хочу, чтобы конструкция if работала

1 Ответ

2 голосов
/ 27 июня 2019

Вы не можете использовать оператор if / else в объявлении объекта. Вы всегда устанавливаете значение isIbanSet в null, я собираюсь предположить, что вы намереваетесь установить его в true или false.

троичной

Один из способов сделать это - использовать троичное выражение (см. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Conditional_Operator) примерно так:

let data = {
    isIbanSet: iban ? true : false,
    iban: iban,
    canOrderCards: canOrderCards
};

Если / еще

в противном случае вы могли бы сначала определить объект:

let data = {
    iban: iban, // string: if undefined the value will not be updated
    canOrderCards: canOrderCards // boolean: if undefined the value will not be updated
};

, а затем добавьте последнее свойство:

if(iban){
    data['isIbanSet'] = true;
} else {
    data['isIbanSet'] = false;
}
...