在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/

10-12 19:32