2016-06-02 2 views
4

Я tring, чтобы использовать lookReference в моем ViewController, но я не могу получить элемент.ExtJS lookupReference не работает

Вот мое мнение:

Ext.define('MyApp.view.main.Main', { 
    extend: 'Ext.container.Container', 
    xtype: 'app-main', 
    requires: [ 
     'Ext.layout.container.Card', 
     'Ext.layout.container.Border', 
     'Ext.layout.container.Accordion', 
     'Ext.form.Label', 
     'MyApp.view.security.LoginForm' 
    ], 

    controller: 'main', 
    reference: 'appmain', 


    items: [{xtype: 'loginform', height: 330}] 
}); 

Мой взгляд LoginForm является:

Ext.define('MyApp.view.security.LoginForm', { 
    extend: 'Ext.form.Panel' 
    title: 'Access', 
    items: [ 
    { 
     name: 'userName', 
     fieldLabel: "User Name" 
    }, { 
     inputType: 'password', 
     name: 'password', 
     fieldLabel: "Password" 
    }], 
    buttons: [{ 
     text: 'Log in', 
     listeners: { 
      click: 'onLoginClick' 
     } 

    }] 
}); 

И это мой ViewController:

Ext.define('SoftHuman.view.main.MainController', { 
    extend: 'Ext.app.ViewController', 

    alias: 'controller.main', 

    onLoginClick: function(button, e, options) { 
     var me = this; 

     // show application layout 
     var main = me.lookupReference('appmain'); 

     // HERE main IS NULL... WHY? 
    } 
}); 

Любой невдомек, что Я делаю не так?

ответ

6

Ссылка хранится на структуре (компоненте/контроллере) над текущим. Не имеет смысла размещать ссылку на компонент, который имеет контроллер, поскольку он уже доступен через this.getView().