SweetAlert2 добавляет динамические параметры для выбора ввода

Я хочу добавить динамические параметры для выбора типа ввода SweetAlert2, который выглядит следующим образом:

swal({
title: 'Select Ukraine',
input: 'select',
inputOptions: {
  'SRB': 'Serbia',
  'UKR': 'Ukraine',
  'HRV': 'Croatia'
},
inputPlaceholder: 'Select country',
showCancelButton: true,
inputValidator: function(value) {
  return new Promise(function(resolve, reject) {
    if (value === 'UKR') {
      resolve();
    } else {
      reject('You need to select Ukraine :)');
    }
  });
}
}).then(function(result) {
  swal({
    type: 'success',
    html: 'You selected: ' + result
  });
})

Вместо этих 3 стран я хочу добавить свои варианты, которые сохраняются в объекте. Как я могу сделать это с помощью javascript?


person Andrei Zamfir    schedule 29.06.2016    source источник
comment
что вы подразумеваете под динамическими параметрами?   -  person Limon Monte    schedule 29.06.2016
comment
@Andrei Zamfir: мои собственные параметры, которые сохраняются в объекте, эквивалентны var savedObject = {'value_1': 'name_1', 'value_2': 'name_2', 'value_3': 'name_3'}, не так ли?   -  person Trung Le Nguyen Nhat    schedule 29.06.2016
comment
да, это то, что я имею в виду   -  person Andrei Zamfir    schedule 29.06.2016
comment
@Andrei Zamfir: так что вы можете заменить {'SRB': 'Serbia', 'UKR': 'Ukraine', 'HRV': 'Croatia'} на savedObject, и это сработает   -  person Trung Le Nguyen Nhat    schedule 30.06.2016
comment
@TrungLeNguyenNhat вау, это было так просто, я даже не подумал об этом. Огромное спасибо!   -  person Andrei Zamfir    schedule 02.07.2016
comment
@Андрей Замфир: пожалуйста, хорошего дня!   -  person Trung Le Nguyen Nhat    schedule 02.07.2016


Ответы (1)


Вы могли бы попробовать создать объект параметров, подобный этому.

function linkThing() {

        //this i assume would be loaded via ajax or something?
        var myArrayOfThings = [
            { id: 1, name: 'Item 1' },
            { id: 2, name: 'Item 2' },
            { id: 3, name: 'Item 3' }
        ];

        var options = {};
        $.map(myArrayOfThings,
            function(o) {
                options[o.id] = o.name;
            });

        swal({
            title: 'My Title',
            text: 'Please select an option',
            input: 'select',
            inputOptions: options,
            showCancelButton: true,
            animation: 'slide-from-top',
            inputPlaceholder: 'Please select'
        }).then(function (inputValue) {
            if (inputValue) {

                console.log(inputValue);

            }
        });
    };
person Dane    schedule 27.02.2017