在MVC模式之前,我只需在Ext.onReady
之前将其包含在JS的顶部,就可以包含UX类:
Ext.Loader.setConfig({enabled: true});
Ext.Loader.setPath('Ext.ux', 'extjs/examples/ux');
Ext.require([
'Ext.ux.grid.FiltersFeature'
]);
现在,我正在使用MVC模式,并且有一个网格面板需要使用此相同功能。我在这样的 View 中包含了require语句:
Ext.define('ST.view.StudentLog', {
extend: 'Ext.grid.Panel',
alias: 'widget.studentlog',
requires: [
'Ext.ux.grid.FiltersFeature'
],
但是,此应用首次开始加载时会产生404错误。
有任何想法吗?
编辑:
我尝试将相同的代码块放在 View 顶部也无济于事(指的是
Ext.Loader.setConfig / .setPath
块)。不管我如何告诉加载程序,加载程序都会不断尝试从
extjs/src/ux/
加载UX类。根据this suggestion的说法,我也曾尝试在我的应用程序 Controller 中定义path属性,但似乎答案在源代码中看到的东西在4.1 rc3中都不存在,因为我找不到它并且它不起作用。如果我只是将FilterFeature.js添加为带有
<script>
标签的HTML中的导入源文件,则当我的应用程序启动时,所有依赖项都会出现404错误。必须有一种直接从UX文件夹直接在应用程序中包括UX类的方法,以便它可以链接到其他UX依赖项。
最佳答案
好的,我是从this post找到的。
只需在应用程序 Controller 顶部使用Ext.Loader.setPath
调用即可,例如:
Ext.Loader.setPath('Ext.ux', 'extjs/examples/ux');
Ext.application({
name: 'ST',
autoCreateViewport: true,
...
或者,出于压缩目的,无论您要将ux类放在何处,都应拉出应用程序特定的UX类,并将其粘贴在您自己的文件夹中,如
app/ux
这样,如后所述。关于extjs - 您如何在MVC模式中包括UX类?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10308018/