Sencha Touch 2控制器初始化/启动不会触发

时间:2014-04-17 10:30:47

标签: javascript extjs sencha-touch touch sencha-touch-2.3

代码如下。

我要做的就是从我的登录控制器加载登录视图。但是,我发现登录控制器未正确加载。调用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未加载。

1 个答案:

答案 0 :(得分: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');
  }
});