【问题标题】:Ext.Msg is undefinedExt.Msg 未定义
【发布时间】:2015-02-20 06:10:19
【问题描述】:

我正在使用 ExtJs 4 并使用此代码

这里是js部分

Ext.onReady(function () {


//button with handler
Ext.create("Ext.Button",{
text : "Hello World",
handler : function(){
Ext.Msg.alert("Hello World Error");
},
renderTo : Ext.getBody()
});

//panel without data
Ext.create("Ext.Panel",{
title : "Hello World Panel",
items : [
Ext.create("Ext.form.field.Text",{
fieldLabel : "Name"
}),
Ext.create("Ext.Button",{
text : "Click"
})
],
renderTo : Ext.getBody()
});

//popup with data
Ext.create("Ext.Panel",{
title : "Hello World Panel",
items : [
Ext.create("Ext.form.field.Text",{
fieldLabel : "Name",
id:"nametext"
}),
Ext.create("Ext.Button",{
text : "Click",
handler : function(){
Ext.Msg.alert(Ext.getCmp("nametext").getValue());
}
})
],
renderTo : Ext.getBody()
});

});

这里是Html部分

   <link rel="stylesheet" type="text/css" href="resources/css/ext-all.css">
   <script type="text/javascript" src="ext-debug.js"></script>
   <script type="text/javascript" src="app.js"></script>

错误:未定义 Ext.Msg,但是我可以看到 UI,但处理程序都不起作用。

请帮忙

【问题讨论】:

  • 看起来应该可以了。 ext-debug.js 是否在您的浏览器中正确加载?
  • 是的,它加载正确。
  • 虽然如果我删除这个 ext-debug.js 并添加 ext-all.js。它可以工作,但不知道为什么会这样。
  • 你的意思是如果你删除它们包括你仍然看到 ext 组件和警报工作?如果是这样,您的 html 中必须包含其他内容?
  • 是的,我删除 并添加 现在它可以工作了

标签: extjs extjs4 extjs4.1 extjs4.2


【解决方案1】:

问题在于了解何时使用ext-all.jsext-debug.jsext-all-debug.js

  • ext-debug.js 仅包含框架的一小部分。它旨在用于 MVC 样式,并将加载在 requires: [] statement 中的任何类中声明的所有类。
  • 这个生产版本是编译app.js文件(编译Sencha Command
  • ext-all-debug.js 包含用于以传统(非 MVC)风格进行开发的整个框架。
  • ext-all.js 包含生产站点的旧版(非 MVC)风格的整个框架(缩小版)。

在你的情况下你不应该使用ext-all.js,而应该使用ext-all-debug.js

还可以查看the MVC system 以编写更好的可维护代码。

【讨论】:

    猜你喜欢
    • 2020-02-29
    • 1970-01-01
    • 2017-11-24
    • 2010-10-21
    • 2018-09-08
    • 1970-01-01
    • 1970-01-01
    • 2021-11-21
    相关资源
    最近更新 更多