【问题标题】:extjs 4.1.0 controller's init function won't be calledextjs 4.1.0 控制器的 init 函数不会被调用
【发布时间】:2012-11-01 23:28:00
【问题描述】:

我对 javascript 和 extjs 都很陌生,在尝试执行 extjs 4.1 MVC 架构教程的步骤时遇到了这个问题。一开始一切都很好,但是当我尝试将控制器添加到应用程序时出现问题。应用程序启动函数和控制器初始化函数都没有被调用。我使用了来自here 的示例代码,但我无法让“定义控制器”步骤正常工作。它发现 Users.js 没有错误消息,但它仍然不会调用控制器的 init 函数。如果我删除“控制器:['Users']”,将调用应用程序启动。有什么我想念的想法吗?

app.js:

Ext.application({
requires: ['Ext.container.Viewport'],
name: 'Account Manager',

appFolder: 'app',

controllers: ['Users'],

launch: function() {...}

Users.js:

Ext.define('app.controller.Users', {
extend: 'Ext.app.Controller',

init: function() {
        console.log('Initialized Users!');
}
});

感谢您的宝贵时间。

【问题讨论】:

  • 嗯...我认为您只是在app.js 的末尾错过了});?您的控制台上是否还有任何错误?
  • 语法是正确的,只是我没有准确地复制它。不,不幸的是,我在控制台上没有收到任何错误消息。

标签: javascript extjs javascript-framework extjs4.1 extjs-mvc


【解决方案1】:

你的错误是(Ext.Application)

name: 'Account Manager',

这是 name property 的 API 链接。

改成:

name: 'app', // I would use camelcase here

解释:

您不能在应用程序名称中使用空格。此外,它更像是一个名称空间,而不是一个名称。之后,您必须在所有类中使用它(这将是您的视图、控制器模型和存储的命名空间)。

【讨论】:

  • 它确实成功了,谢谢。我以为是 appfolder 参数在这里很重要,但它是名称。
猜你喜欢
  • 2012-10-04
  • 1970-01-01
  • 1970-01-01
  • 2012-04-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多