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