Есть ли способ динамического доступа к объекту из служебного класса в EXT JS? - PullRequest
0 голосов
/ 09 апреля 2020

Моя структура кода выглядит следующим образом ->

MyApp-> app -> модель, представление, контроллер, хранилище, утилиты

У меня есть следующий служебный класс, созданный для моих ошибок проверки:

Ext.define('MyApp.shared.utils.GlobalStrings', {
         AmountLimitViolation: "Amount Limit Violated",
         DurationLimitViolation: "Duration Limit Violated"
});

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

Ext.define('MyApp.controller.ViewController', {
        extend: 'Ext.grid.Panel',

        violationCheck: function (tradelimit, tradelimitViolations){
            let me = this,
            tradeViolationMessage = "";

            if(tradelimit > 0){
                for(i = 0; i < tradelimitViolations.length; i++){
                    violationString = tradelimitViolations[i] + "Violation";
                    tradeViolationMessage += GlobalStrings.violationString;
                }
            }
        }
});

tradelimitViolations - строка, которая будет содержать что-то вроде: (" AmountLimit "," DurationLimit ")

Так есть ли какой-нибудь метод, который я мог бы использовать для динамического получения AmountLimitViolation и DurationLimitViolation, не прибегая к использованию длинного списка условных операторов? Потому что я просто показываю две из множества ошибок нарушения, которые у меня есть.

1 Ответ

0 голосов
/ 10 апреля 2020

Проблема в том, как вы «индексируете» глобальные строки. Оператор точки использует текст справа в качестве ключа, но у вас есть переменная, удерживающая ваш ключ.

Попробуйте это:

        for(i = 0; i < tradelimitViolations.length; i++){
            violationString = tradelimitViolations[i] + "Violation";
            tradeViolationMessage += GlobalStrings[violationString];
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...