【发布时间】:2013-12-13 14:08:31
【问题描述】:
我在 Symfony 应用程序中使用 ExtJS 和 GeoExt。 由于 Symfony 的资产倾销导致路由错误导致一些麻烦,目前一切正常。
在尝试在 Ext Panel 中显示 OpenLayers 图层时发现问题后,我尝试通过以下方式解决:
Ext.require([
'GeoExt.panel.Map',
'GeoExt.tree.OverlayLayerContainer',
'GeoExt.tree.BaseLayerContainer',
'GeoExt.data.LayerTreeModel',
'GeoExt.tree.View',
'GeoExt.tree.Column',
]);
问题,我收到了这个错误:
Uncaught TypeError: undefined is not a function
错误来自 Ext.Require
如果我只是把
Ext.require([
]);
里面什么都没有,没有错误。 一旦我把东西放进去,即使它是一个 Ext.something,错误也会再次出现。
错误来自:
/server path/ExtJS4.2/src/menu/Manager.js:182
为什么?
【问题讨论】:
-
是否定义了您需要的每个“类”(例如,
GeoExt.panel.Map等)? -
顺便说一句,您在传递给
require的数组末尾有一个逗号。 -
@KelseyFrancis 您的意思是 Column' 末尾的逗号,?它在我制作的另一个代码中工作。如果我删除它,什么都不会改变。
-
@KelseyFrancis 我不知道它们是否已定义,但我想是的,因为我可以在我的代码中使用它们并且它们可以工作。无论如何,如果我只是通过 Ext.container.Viewport,即使我在我的代码中使用 Ext.create(Ext.container.Viewport 并且它正在工作,我也会遇到同样的错误。
-
问题来自'GeoExt.data.LayerTreeModel',这就是为什么我尝试将它定义到需求中。因为定义为模型,它似乎被代码简单地忽略了。但是“GeoExt.panel.Map”已经在代码中工作了。所以这有点奇怪。
标签: javascript extjs typeerror extjs4.2 geoext