首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >忽略ExtJs minify

忽略ExtJs minify
EN

Stack Overflow用户
提问于 2015-08-26 13:44:04
回答 1查看 150关注 0票数 15

我们有一个CMS,所以我不能访问HTML页面的标题,它是为我们的extjs实现呈现的。所以我必须做一个解决办法,就是这样:

代码语言:javascript
复制
 Ext.local = {};
    var lang = {
        initLang: function (revisionNr) {
            var local = localStorage.getItem('localLang')
            if (!local) {
                AjaxHandlerByClass('ajax/lang/webuser/init', {}, this.loadLangRemote);
            } else {
                local = JSON.parse(local);
                if (local.revisionNr == config.revisionNr && local.lang == config.lang) {
                    console.log('loading local lang variables');
                    if (local.date < new Date().getTime() - (24 * 60 * 60 * 1000) * 2) {//2 day caching time before retry
                        delete window.localStorage.localLangBackup;
                    }
                    this.loadLangLocal(local);
                } else {
                    delete window.localStorage.localLang;
                    AjaxHandlerByClass('ajax/lang/webuser/init', {}, this.loadLangRemote);
                }
            }
        },
        loadLangRemote: function (data) {
            data.revisionNr = config.revisionNr;
            data.lang = config.lang;
            data.date = new Date().getTime();
            lang.loadLangLocal(data);
            localStorage.setItem('localLang', JSON.stringify(data));
        },
        loadLangLocal: function (data) {
            var jsElm = document.createElement("script");
            jsElm.type = "application/javascript";
            jsElm.src = 'js/freetext-deploy.min.js?rev={/literal}{$revisionNr}{literal}';

            document.getElementsByTagName('head')[0].appendChild(jsElm);

            Ext.Date.defaultFormat = 'd-m-Y';
            if (!debug) {
                Ext.Loader.config.disableCaching = true;
            }


            Ext.application({
                name: 'freetextOrder',
                appFolder: 'modules/extjs/freetextOrder/app',
                controllers: [
                    'Main'
                ],
                launch: function () {
                    
                    var freetextOrder = Ext.create('Ext.container.Container', {
                        renderTo: Ext.get('freetextOrderDiv'),
                        layout: 'fit',
                        id: 'catalogAdministrationDiv_ext',
                        height: 800,
                        cls: 'x-dig-override',
                        items: [Ext.create('freetextOrder.view.base.MainView', {})],
                        layout:'fit'
                    });
                }
            });
            Ext.local = data;
        }
    };
    lang.initLang();

我遇到的问题是小型化的版本被完全忽略了。我看到它加载在http请求上,但是extjs忽略了它们.尽管我可以看到对象是在include之后创建的(通过控制台日志)

有人知道我怎么能做到这一点吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-07 09:59:56

我看到没有人找到答案,所以我在这里贴出了自己的答案。

由于我可以上帝的爱,而不是加载该死的东西,我重构了装载机,并将它出口到一个Js。文件。我发了个电话,然后用密码打电话来。

导出的lang.js文件:

代码语言:javascript
复制
Ext.define('Lang', {
    singleton: true,
    ApplicationConf: null,
    Launch: function (launchConfig) {

        this.ApplicationConf = launchConfig;

        var local = localStorage.getItem('localLang');
        var me = this;

        this.loadLangRemote = function (data) {
            debugger;
            data.revisionNr = config.revisionNr;
            data.lang = config.lang;
            data.date = new Date().getTime();
            me.loadLangLocal(data);
            localStorage.setItem('localLang', JSON.stringify(data));
        };
        this.loadLangLocal = function (data) {
            Ext.local = data;
            Ext.lang = function (langId) {
                if (Ext.local[langId]) {
                    return Ext.local[langId];
                }

                delete window.localStorage.localLang;
                localStorage.setItem('localLangBackup', true);
                return langId;
            }
            Ext.application(me.ApplicationConf);
        };

        if (!local) {
            Ext.Ajax.request({
                url: 'ajax/lang/webuser/init',
                params: {
                    sid: sid,
                },
                success: function (data) {
                    debugger;
                    me.loadLangRemote(Ext.JSON.decode(data.responseText));
                }

            })
        } else {
            local = JSON.parse(local);
            if (local.revisionNr == config.revisionNr && local.lang == config.lang) {
                console.log('loading local lang variables');
                if (local.date < new Date().getTime() - (24 * 60 * 60 * 1000) * 2) {//2 day caching time before retry
                    delete window.localStorage.localLangBackup;
                }
                debugger;
                me.loadLangLocal(local);
            } else {
                delete window.localStorage.localLang;
                Ext.Ajax.request({
                    url: 'ajax/lang/webuser/init',
                    params: {
                        sid: sid,
                    },
                    success: function (data) {
                        me.loadLangRemote(Ext.JSON.decode(data.responseText));
                    }
                })
            }
        }

    },
})

重要的是添加

代码语言:javascript
复制
  Ext.onReady(function () {
           Lang.Launch({
                name: 'catalogAdministration',
                appFold....

对于代码中的启动函数调用,因为在运行时没有定义它。我首先将文件添加到缩小的文件中,然后调用Lang.Launch而不是Ext.Application。

希望有人能利用我的解决方案:)

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32228382

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档