0

代码如下。

我要做的就是从我的登录控制器加载登录视图。但是,我发现登录控制器没有正确加载。既不调用launch() 也不调用init()。任何人都可以帮助我吗?

提前致谢!!

应用程序/app.js

Ext.Loader.setConfig({
  disableCaching: false,
  enabled: true
});

Ext.application({
  name: 'KangasK',
  models: [],
  stores: [],
  controllers: [
    'Login'
  ],
  views: [
  ],

  launch: function() {
    alert('launch app');
  }

});

应用程序/控制器/Login.js

Ext.define('KangasK.controller.Login', {
  extend: 'Ext.app.Controller',
  views: ['Login'],
  stores: [],
  config: {
    refs: {
      loginBtn: '#loginBtn'
    },
    control: {
      loginBtn: {
        tab: 'login'
      }
    },

    init: function() {
      alert('init')
    },

    launch: function() {
      alert('launch login');
    }
  }

});

应用程序/视图/Login.js

Ext.define('KangasK.view.Login', {
  extend: 'Ext.form.Panel',
  alias: 'widget.loginview',
  config: {
    items: [
      {
        xtype: 'fieldset',
        title: 'Login',
        items: [
          {
            xtype: 'textfield',
            placeHolder: 'Username',
            itemId: 'username',
            name: 'username',
            required: true
          },
          {
            xtype: 'passwordfield',
            placeHolder: 'Password',
            itemId: 'password',
            name: 'password',
            required: true
          }
        ]
      },
      {
        xtype: 'button',
        itemId: 'logInButton',
        ui: 'action',
        padding: '10px',
        text: 'Login'
      }
    ]
  }
});

PS:在浏览器中显示 app/controller/Login.js 已加载,但 app/view/Login.js 未加载。

4

1 回答 1

1

我自己想通了...

init 和 launch 不应该在 config: {} 中

这有效:

Ext.define('KangasK.controller.Login', {
  extend: 'Ext.app.Controller',
  config: {
    views: ['Login'],
    stores: [],
    refs: {
      loginBtn: '#loginBtn'
    },
    control: {
      loginBtn: {
        tab: 'login'
      }

    }
  },
  init: function() {
    console.log('init')
  },

  launch: function() {
    console.log('launch login');
  }
});
于 2014-04-17T10:48:17.480 回答