开源进销存PSI - ExtJS知识点(3)

Ext.create 与 new

因为PSI是用ExtJS 4.2开发的,所以这个知识点是针对这个版本而言的。

在JS中创建对象,肯定只有用new,所以Ext.create最终必然要使用new,只是为了构建其内部的数据结构,又附加了很多的代码。

重要的事情说三遍:用Ext.create创建对象 、用Ext.create创建对象 、用Ext.create创建对象。

在ExtJS中,可以忘记new!


Ext.define("PSI.Customer.CustomerField", {
    extend: "Ext.form.field.Trigger",
    alias: "widget.psi_customerfield",
    // 下面的代码略

这里有个新的知识点:alias  - 别名。

用别名也可以创建对象,比如上面对象的使用如下所示:

                        {
                            id: "editCustomer",
                            xtype: "psi_customerfield",
                            parentCmp: me,
                            fieldLabel: "客户",
                            allowBlank: false,
                            labelWidth: 60,
                            labelAlign: "right",
                            labelSeparator: "",
                            colspan: 2,
                            width: 430,
                            blankText: "没有输入客户",
                            beforeLabelTextTpl: PSI.Const.REQUIRED,
                            listeners: {
                                specialkey: {
                                    fn: me.onEditCustomerSpecialKey,
                                    scope: me
                                }
                            }
                        }

特别注意上述代码中的 xtype的值!

总结:alias 定义了一个新的xtype , 在其他地方使用xtype的时候,就可以引用同样的alias值来创建新的对象。

alias的值的格式是:widget.ABCD , 那么xtype的值就是 ABCD

例子中的是:alias: "widget.psi_customerfield"  --- xtype: "psi_customerfield"

时间: 2024-11-14 01:36:22

开源进销存PSI - ExtJS知识点(3)的相关文章

开源进销存PSI - ExtJS知识点(1)

引言 这一系列的博客源于PSI的QQ群中有同学抱怨JS代码中没有注释,于是我就决定动手增加注释.同时我也在想:很多关于ExtJS的疑问是和不太熟悉ExtJS的基础知识点相关的,所以我就决定动手写这一系列的博客. 注意:这些知识点仅仅局限于PSI代码中应用到了的,并不是ExtJS开发大全. Ext.define 这个是我认为在ExtJS所有的知识点中最重要的,原因是几乎每个PSI的JS代码中它必出现. 通俗地讲,Ext.define就是定义一个新的class.因为JS本身没有class这个原生的类

开源进销存PSI - ExtJS知识点(2)

先看代码 Ext.define("PSI.Sale.WSMainForm", {     extend: "Ext.panel.Panel",     border: 0,     layout: "border",     initComponent: function () {         var me = this;         //下面的代码略 1.上面的代码的主要含义是定义了一个新的class:PSI.Sale.WSMainFo

开源进销存PSI - 技术文档目录

开源进销存PSI技术文档目录 1.本地环境搭建 2.总体技术架构 PSI概要设计文档在这里

开源进销存PSI - 为什么又要用Java重写一个版本?

看这篇文章之前,最好先看看这个: http://my.oschina.net/u/134395/blog/382447 1.PSI 目前是用PHP写的,但是我决定还要再弄个Java版本! 2.原因之一: Just for fun !  (向 Linus Torvalds 致敬!) 3.如果只是简单地把PHP代码翻译成Java代码,那么这个 fun就不够爽,所以呢:Java版有其独特的规划. 概要地讲,PSI Java版的目标是:集团版的进销存系统. PHP版本的PSI,目前还只能给单店使用,遇到

开源进销存PSI - 为什么要开发安卓app

PSI为什么要开发安卓app而不用H5? 1.如果用手机或者其他移动设备访问:http://psi.oschina.mopaas.com ,就能看到H5页面. 2.在PSI中H5方式主要用来做报表展现和以后嵌入到微信中. 3.有一种设备叫:智能手持终端,见下图(图片版权归百度百科) 目前很多这种设备,是基于WinCE的,但是越来越多的类似设备是基于安卓的了. 4.还有一个例子:收银POS机,基于安卓系统的也越来越多. 5.概括说原因就是:越来越多的外部设备是基于安卓系统的,而在进销存业务中会用到

开源进销存PSI - 关于PSI开源协议的一些说明

经常有用户对PSI的开源协议产生疑惑,这篇文章就集中讲讲这方面的话题. 1.PSI是双开源协议:GPL V3和Apache License V2. 2.之所以是双协议,很大的因素是因为ExtJS.因为PSI使用了ExtJS 4.2.1作为UI,我并没有ExtJS的商业授权,所以使用的是ExtJS的开源版本,ExtJS开源版本的开源协议是GPL V3. 因为GPL协议有一定的"传染性",所以,PSI就采用了GPL V3协议. 3.但是,因为PSI是企业管理软件,如果不能私有化,很多企业总

开源进销存PSI - 技术随笔

1.Netbeans 英文版 说实在的,Netbeans的默认中文字体实在是不符合我的审美观.我是从微软的世界转移到开源的世界,IDE的美学观被微软给弄坏了.最后,把Netbeans弄成英文界面,才勉强接受. 如何实现Netbeans,网上也很多,我就再记录一次也无妨. 简单说就是修改 C:\Program Files\NetBeans 8.0.2\etc\netbeans.conf 给该文件中的netbeans_default_options增加-J-Duser.language=en -J-

开源进销存PSI - 关于UI的规划

这个话题是由PSI的开源协议引起,我用这篇文章讲讲我对PSI UI的规划. 1.因为目前我是个人,尚未注册公司,所以购买ExtJS的商业许可方面,有很多的麻烦事情. 2.PSI是商业项目,只是商业模式中有代码开源.所以,在成立公司后,会购买ExtJS的商业许可,从而解决PSI官方产品 ExtJS的分发问题. 如果只是这样,当然就谈不上规划了.下面,就来畅想一下啊. 1.对于企业应用,我深知UI框架的重要.所以,开发一套自身的框架,当然是必须的. 2.最自然的演化路径是:购买ExtJS的商业许可

开源进销存PSI - 为什么用PHP开发

PSI为什么要用PHP开发?这个问题,很多网友都问过我,今天就写一篇博客来讲讲这个历程. 概括讲,主要原因是:省钱. 2011年我启动了一个开源项目:CRM8000,当时是host在 teamhost上,teamhost后来的演变见这里:http://segmentfault.com/a/1190000000374128  . 所以,[email protected]成了我的注册邮箱,之后就一直沿用. CRM8000被OSC收录的时间是:2011年4月12日. 这一个版本的CRM8000,我是用