我的代码结构如下->
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];
}