ExtJS lookupReference不起作用

时间:2016-06-02 18:34:33

标签: extjs extjs6

我想在我的ViewController中使用lookReference,但我无法获取该元素。

以下是我的观点:

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?
    }
});
  

任何线索我做错了什么?

1 个答案:

答案 0 :(得分:6)

引用存储在当前结构上方的组件(组件/控制器)上。在具有控制器的组件上添加引用是没有意义的,因为它已经可以通过this.getView()访问。