Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在extjs中获取枚举的名称?_Javascript_Extjs - Fatal编程技术网

Javascript 如何在extjs中获取枚举的名称?

Javascript 如何在extjs中获取枚举的名称?,javascript,extjs,Javascript,Extjs,我有一个静态枚举集的模型 Ext.define('MyApp.model.RefreshableComponent', { statics: { RefreshIntervals: { ONEMIN: 1, FIVEMINS: 2, TENMINS: 3, FIFTEENMINS: 4, DEFAULT: 5 } } }); 我在另一个类中访问它,就像这样 update

我有一个静态枚举集的模型

Ext.define('MyApp.model.RefreshableComponent', {
   statics: {
      RefreshIntervals: {
         ONEMIN: 1,
         FIVEMINS: 2,
         TENMINS: 3,
         FIFTEENMINS: 4,
         DEFAULT: 5
      }
   }
});
我在另一个类中访问它,就像这样

updateDefaultTask: function () {
   this.updateTask(MyApp.model.RefreshableComponent.RefreshIntervals.DEFAULT);
},
updateTask: function (refreshInterval) {
      var components = this.getVisibleComponentsByRefreshInterval(refreshInterval);
      if (this.debugMode) {
         console.log("REFRESHMANAGER: Triggered the update task " + refreshInterval);
      }    
   },
我想在日志中显示刷新间隔的名称,而不是int值。我该怎么办

我愿意以不同的方式定义此枚举,只要出于可读性原因,我仍然可以将名称作为参数传递,而不是int。

Ext有以下方法:

返回与给定值对应的第一个匹配键。如果没有 找到匹配的值,返回null


我想您可以存储一组键值对对象,而不是使用传统意义上的枚举,如下所示:

Ext.define('MyApp.model.RefreshableComponent', {
   statics: {
      RefreshIntervals: {
         ONEMIN: { value = 1, name = 'ONEMIN' },
         FIVEMINS: { value = 2, name = 'FIVEMINS' },
         TENMINS: { value = 3, name = 'TENMINS' },
         FIFTEENMINS: { value = 4, name = 'FIFTEENMINS' },
         DEFAULT: { value = 5, name = 'DEFAULT' }
      }
   }
});
updateDefaultTask: function () {
   this.updateTask(MyApp.model.RefreshableComponent.RefreshIntervals.DEFAULT.name);
}
您可以这样引用它们:

Ext.define('MyApp.model.RefreshableComponent', {
   statics: {
      RefreshIntervals: {
         ONEMIN: { value = 1, name = 'ONEMIN' },
         FIVEMINS: { value = 2, name = 'FIVEMINS' },
         TENMINS: { value = 3, name = 'TENMINS' },
         FIFTEENMINS: { value = 4, name = 'FIFTEENMINS' },
         DEFAULT: { value = 5, name = 'DEFAULT' }
      }
   }
});
updateDefaultTask: function () {
   this.updateTask(MyApp.model.RefreshableComponent.RefreshIntervals.DEFAULT.name);
}
如果需要int值:

updateDefaultTask: function () {
   this.updateTask(MyApp.model.RefreshableComponent.RefreshIntervals.DEFAULT.value);
}

它可能更详细一点,但更灵活一点,因为如果需要的话,可以扩展对象。例如,他们可能有一个关联图标或类似的东西,您可能需要适应。

谢谢您的回答,这是一个有效的选择,并将在将来记住这一点。