是否存在从EXTJS中的实用程序类动态访问对象的方法



我的代码结构如下->

MyApp->app->model,view,controller,store,utils

我为我的验证错误创建了以下实用程序类:

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和DurationLimitViilation,而不必使用一长串条件语句?因为我只是展示了我有很多违规错误中的两个。

问题是如何"索引"到GlobalStrings中。点运算符使用右边的文本作为键,但您有一个变量来保存您的键。

试试这个:

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

最新更新