Class 除了通过Id之外,还有其他方法访问类吗?

Class 除了通过Id之外,还有其他方法访问类吗?,class,forms,extjs,load,extjs4,Class,Forms,Extjs,Load,Extjs4,我怎样才能访问这个类,我需要我的动态ID来做其他事情。。。通常,如果这是//var something=Ext.create(…我会做点什么。getForm().load…?) Ext.define('app.winKontakt'{ 扩展:'Ext.form.Panel', closable:是的, id:“myId”,我刚开始使用ExtJS,所以可能有更好的实践 您可以将itemId分配给组件并使用来获取它 Ext.define('app.view.contact.Form', { ex

我怎样才能访问这个类,我需要我的动态ID来做其他事情。。。通常,如果这是//var something=Ext.create(…我会做点什么。getForm().load…?)

Ext.define('app.winKontakt'{
扩展:'Ext.form.Panel',
closable:是的,

id:“myId”,我刚开始使用ExtJS,所以可能有更好的实践

您可以将itemId分配给组件并使用来获取它

Ext.define('app.view.contact.Form', {
  extend: 'Ext.form.Panel',
  itemId: 'myId',

  buttons: [{
    text: 'Load',
    handler: function(){
      Ext.ComponentQuery.query('#myId').getForm().load({...});
    }
  }]
})
另一个选项是使用AbstractComponent中的函数获取封闭表单

Ext.define('app.view.contact.Form', {
  extend: 'Ext.form.Panel',

  buttons: [{
    text: 'Load',
    handler: function(){
      this.up('form').load({...});
    }
  }]
})
我通常不会在视图定义中放入任何代码,而是使用Ext.app.Controller中的函数来进行适当的MVC分离:

Ext.define('app.controller.Contacts', {
  extend: 'Ext.app.Controller',
  views: ['app.view.contact.Form'],

  init: function() {
    this.control({
      'button[action=load]': {
        click: this.loadForm
      }
    })
  }

  loadFrom: function() {...}
})

Ext.define('app.view.contact.Form', {
  extend: 'Ext.form.Panel',

  buttons: [{
    text: 'Load',
    action: 'load'
  }]
})

在这个小示例中,它看起来很像一些开销,但是对于更大的代码库,控制函数非常便于理解从复杂视图发送到控制器的事件。

我刚开始使用ExtJS,因此可能有更好的实践

您可以将itemId分配给组件并使用来获取它

Ext.define('app.view.contact.Form', {
  extend: 'Ext.form.Panel',
  itemId: 'myId',

  buttons: [{
    text: 'Load',
    handler: function(){
      Ext.ComponentQuery.query('#myId').getForm().load({...});
    }
  }]
})
另一个选项是使用AbstractComponent中的函数获取封闭表单

Ext.define('app.view.contact.Form', {
  extend: 'Ext.form.Panel',

  buttons: [{
    text: 'Load',
    handler: function(){
      this.up('form').load({...});
    }
  }]
})
我通常不会在视图定义中放入任何代码,而是使用Ext.app.Controller中的函数来进行适当的MVC分离:

Ext.define('app.controller.Contacts', {
  extend: 'Ext.app.Controller',
  views: ['app.view.contact.Form'],

  init: function() {
    this.control({
      'button[action=load]': {
        click: this.loadForm
      }
    })
  }

  loadFrom: function() {...}
})

Ext.define('app.view.contact.Form', {
  extend: 'Ext.form.Panel',

  buttons: [{
    text: 'Load',
    action: 'load'
  }]
})

在这个小示例中,它看起来很像一些开销,但对于更大的代码库,控制函数非常方便,可以理解从复杂视图发送到控制器的事件。

不,这不起作用,但谢谢。我想我需要以某种方式获取类名(app.winKontakt)然后加载到其中。抱歉@Ingol,我忘了使用#来引用项目id。我更新了答案并添加了两种可能性。是的,这个.up('form')工作,也刚刚开始,所以MVC肯定是下一步,非常感谢!不,这不起作用,但谢谢。我想我需要以某种方式获得类名(app.winKontakt)然后加载到其中。抱歉@Ingol,我忘了使用#来引用项目id。我更新了答案并添加了两种可能性。是的,这个.up('form')工作,也刚刚开始,所以MVC肯定是下一步,非常感谢!