初试Ext JS 6.6的NPM版(二)

栏目: 编程语言 · 发布时间: 8年前

内容简介:NPM版的Ext JS,在文件解构上与使用Cmd版的区别不大,最大的改变是样式文件(scss文件)不再要求放在sass文件夹,而是可以与视图文件放在一起,如下图所示。下面尝试把快速模版的东西迁移过来试试。先把

NPM版的Ext JS,在文件解构上与使用Cmd版的区别不大,最大的改变是样式文件(scss文件)不再要求放在sass文件夹,而是可以与视图文件放在一起,如下图所示。

初试Ext JS 6.6的NPM版(二)

下面尝试把快速模版的东西迁移过来试试。先把 app\desktop\src\view 文件夹下的文件和文件夹删除。然后将快速模版中的 app\view 中的文件复制过来。把 NavigationTree.js 文件复制到 app\desktop\src\store 文件夹,把 Base.js 和 User.js 复制到 app\desktop\src\model 文件夹。把 packages\local\ 文件夹里的 Common 文件夹复制到 packages 文件夹,要注意,这里不能学快速模版那样加一层 local 文件夹,不然会找不到类。把 resources 文件夹里的内容全部复制到 resources 文件夹。

余下要做的是处理样式文件,这个麻烦点,把 sass\var 文件夹下所以文件的内容复制到 app\desktop\sass\var.scss 文件内。最后把 sass\src 文件夹下的文件复制到对应的视图所在文件夹。

最后要将 app.js 文件修改为以下内容:

Ext.application({
    extend: 'Admin.Application',
    name: 'Admin',

    requires: [
        'Common.overrides.*',
        //'Common.locale.*',
        //'Admin.locale.zh_CN',
        'Common.util.*',
        'Admin.view.main.Main'
    ]


});

当然,将快速模版的 app.js 覆盖原有的文件也行,这里主要的改变是没有指定主视图,而是需要在 application.js 的 launch 方法中创建,这样做的主要原有是为了显示如下图所示加载等待信息。

初试Ext JS 6.6的NPM版(二)

图中的图标显示不了是因为图标字体还没加载,建议还是不要使用图标字体,直接用图片代替比较合适。

还要将 application.js 修改为以下内容:

Ext.define('Admin.Application', {
    extend: 'Ext.app.Application',
    name: 'Admin',

    launch: function () {
        Ext.ariaWarn = Ext.emptyFn
        Ext.getBody().removeCls('launching')
        var elem = document.getElementById("splash")
        elem.parentNode.removeChild(elem)

        var whichView = 'mainview'
//      var loggedIn = localStorage.getItem("LoggedIn");
//      if(loggedIn != 'true') { whichView = 'loginview' }
        console.log(whichView);
        if (Ext.isClassic == true) {
            Ext.create({xtype: whichView, plugins: 'viewport'})
        }
        else {
            Ext.Viewport.add([{xtype: whichView}])
        }
    },

    stores: [
        // TODO: add global / shared stores here
        'NavigationTree'
    ],

    init: function(){
        Ext.util.Format.defaultValue = function (value, defaultValue) {
            return Ext.isEmpty(value) ? (Ext.isEmpty(defaultValue) ? '无': defaultValue) : value;
        }
        Ext.Ajax.on('beforerequest', this.onAjaxBeforeRequest, this);
        Ext.Ajax.cors = true; 
        SESSION.init().then(SESSION.processData);
    },    

    onAppUpdate: function () {
        Ext.Msg.confirm(I18N.ApplicationUpdate, I18N.ApplicationUpdateMsg,
            function (choice) {
                if (choice === 'yes') {
                    window.location.reload();
                }
            }
        );
    },

    onAjaxBeforeRequest: function(conn , options , eOpts ){
        if(!options.headers) options.headers = {}
        Ext.apply( options.headers, HEADERS.getHeaders());
    },

    initSignalR: function(){
        var connection = new signalR.HubConnection(ROOTPATH +'/signalr');
        connection.start();               
    }
});

主要是将 launch 方法之外的内容复制过来。由于在 launch 方法中使用了xtype来创建主视图,因而需要在主视图中添加 xtype 配置项,值为 mainview 。

为了能让客户端的访问地址为 http://localhost:4200 ,以便配合快速模版的后端程序使用,需要修改 webpack.config.js 文件,将 portfinder.basePort 的值修改为 4200 ,将 devServer 的 host 值修改为 localhost 。

好了,一切准备就绪,运行后端程序并执行 npm start 命令打开客户端,就可看到登录窗口,登录后就能看到用户视图了。这说明迁移已经成功,可以在此基础继续后续开发了。

源代码: https://gitee.com/tianxiaode/ext-npm-6.6

快速模版地址: https://github.com/tianxiaode/qTemplate-ExtJS


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。

数字战争

数字战争

[英]查尔斯·亚瑟 / 余淼 / 中信出版社 / 2013-6-1 / 49

1998年,数码世界初具雏形。 至此以往,大浪淘沙。随着IT产业的迅猛发展,涌现出了以苹果、谷歌、微软为首的行业巨头。它们为争夺数码世界不同分支的霸主地位而争斗,包括搜索技术、移动音乐、智能手机和平板电脑市场。它们可利用的武器包括硬件、软件以及广告。同时,它们要赌上的则是公司的声望,当然,还有我们的未来。然而,无论在产品创新还是在战略优势上,这些企业彼此竞争、彼此砥砺,推动了行业的良性发展。......一起来看看 《数字战争》 这本书的介绍吧!

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具