Получить счетчик i в функции

107
21 апреля 2021, 14:00

Я использую framework7. Пытаюсь создать Action Sheet, но столкнулся с проблемой. Мой код:

<script>
    return {
        methods: {
            selectCurrency: function () {
                var $ = this.$;
                var app = this.$app;
                var self = this;
                app.preloader.show();
                app.request({
                    url: app.data.api.site + '/index.php?route=tazboapi/locals/list_currencies',
                    crossDomain: true,
                    method: "GET",
                    success: function (successCurrencies) {
                        app.preloader.hide();
                        var currenciesObj = JSON.parse(successCurrencies);
                        var currenciesList = [{text:"Выбор валюты", label: true}];
                        for (var i = 0; i < currenciesObj.currencies.length; i++) {
                            curObject = {
                              text:currenciesObj.currencies[i].title,
                              onClick:function () {
                                app.dialog.alert('Cancel clicked' + i);
                              }
                            };
                            currenciesList.push(curObject);
                        }
                        currenciesList.push({text:"Закрыть", color:'red', close:true});
                        // Select
                        var currencies = app.actions.create({
                            buttons: currenciesList
                        });
                        currencies.open();
                    },
                });
            },
        }
    }
</script>

JSON который я обрабатываю:

{"event":"success","currencies":[{"title":"Euro","code":"EUR","symbol_left":"","symbol_right":"\u20ac"},{"title":"Pound Sterling","code":"GBP","symbol_left":"\u00a3","symbol_right":""},{"title":"US Dollar","code":"USD","symbol_left":"$","symbol_right":""},{"title":"\u0420\u0443\u0431\u043b\u044c","code":"RUB","symbol_left":"","symbol_right":"\u20bd"}]}

Когда я пытаюсь получить переменную i в функции обработчика onClick:function я всегда получаю i=4. Почему и как мне получить корректно переменную i в функции обработчика?

Answer 1

F7 тут ни при чем, это в JS:

for (var i = 0; ...for (let i = 0; ...

READ ALSO
Как заставить axios работать на iOS7 (iPhone 4)?

Как заставить axios работать на iOS7 (iPhone 4)?

Делаю авторизацию gj WifiИз айфонов под рукой только iphone4

111
Передача коллбека в QJSValue::callAsConstructor()

Передача коллбека в QJSValue::callAsConstructor()

При попытке передать объект из C++ в JavaScript, используя QJSEngine, мистическим образом пропадают все поля, значение которых хранит функцииПочему...

111
Почему не равны переменые?

Почему не равны переменые?

Когда выполняю возвращает:

91
Не могу понять задачу по JS

Не могу понять задачу по JS

Не могу понять почему результат получается 8, объясните пожалуйста

90