initComponent中的验证

时间:2014-06-19 19:46:11

标签: javascript validation extjs extjs3

我在Ext 3.3中扩展了一个窗口,它在许多地方被调用,并且有很多自身的扩展。此窗口有一个可配置字段。当此字段为空或不包含任何项目时,我想显示错误消息而不是继续显示该窗口。这就是我接近它的方式:

data: null,
initComponent: function() {
    if(data && data.length > 0) {
       ...
       $this.superclass.initComponent.apply(this, arguments);
    } else {
       Ext.MessageBox.alert(...)
    }
}

这是一个适当的方式/地方吗?我已经考虑过验证组件何时被调用,但考虑到会发生这么多地方,我不想要多余的代码。主要是我的困惑在于不清楚initComponent之前和之后发生了什么,或者是否有一种简单易读的方法可以完全消除组件调用。

编辑:以上肯定是错的。我认为这只是因为错误被抛出而没有渲染窗口。

1 个答案:

答案 0 :(得分:2)

在我看来,beforerender事件将是一个好地方: 当您返回false时,组件将不会呈现。

  listeners: {
    beforerender: function(){
      if(!data || data.length == 0) {
         Ext.MessageBox.alert(...);
         return false;
      }
    }
  }