ExtJS学习笔记:定义extjs类别
类的定义
Ext.define('Cookbook.Vehicle', {
Manufacturer: 'Aston Martin',
Model: 'Vanquish',
getDetails: function(){
alert('I am an ' + this.Manufacturer + ' ' + this.Model);
}
}, function(){
Console.log('Cookbook.Vehicle class defined!');
});
第一个參数是类名。第二个參数是一个对象。包括类中定义的属性和方法。第三个參数是可选的回调函数,在对象被实例化后运行。
定义的类由 Ext.ClassManager转为Ext.Class的实例,在此过程运行一系列前期和兴许的步骤。.前期步骤的顺序例如以下:
Loader: 载入须要的还没有被载入过的类
Extend: 基于已有类扩展
Mixins: 把定义的 Mixins 融合到类中
Config: 在配置选项中的属性将被处理,并创建对应的get/set/apply/reset 方法
Statics: 处理静态属性和方法
兴许步骤的顺序例如以下:
Aliases: 定义别名,以便通过xtype就可以创建实例
Singleton: 假设定义为单一对象,此时创建实例
Legacy: 不太明确,临时没用到
也能够通过registerPreProcessor和registerPostProcessor方法加入自己定义的处理步骤
假设没有指明基类。默认基类是Ext.Base
Mixins 是一些能够把别的类的属性和方法融合进当前类中,相当于一个子集,简化定义,降低代码量。
1. 定义相机功能类:
Ext.define('HasCamera', {
takePhoto: function(){
alert('Say Cheese! .... Click!');
}
});
2. 定义智能手机类。要求必须具有相机功能.
Ext.define('Cookbook.Smartphone', {
mixins: {
camera: 'HasCamera'
}
});
3. 在智能手机类可调用相机功能类的方法:
Ext.define('Cookbook.Smartphone', {
mixins: {
camera: 'HasCamera'
},
useCamera: function(){
this.takePhoto();
}
});
使用组件查询来訪问组件:
1.通过xtype查询
var panels = Ext.ComponentQuery.query('panel');
2.通过css样式级联的方式。如查询某个panel中的全部button
var buttons = Ext.ComponentQuery.query('panel button');
3.通过组件的属性值
var saveButton = Ext.ComponentQuery.query('button[action="saveUser"]');
4.基于ID
var usersPanel = Ext.ComponentQuery.query('#usersPanel');
等等。
扩展extjs的组件
1. 定义扩展组件的类:
Ext.define('Cookbook.DisplayPanel', {
extend: 'Ext.panel.Panel'
});
2. 重载 initComponent 方法并调用父类的同名方法:
Ext.define('Cookbook.DisplayPanel', {
extend: 'Ext.panel.Panel',
initComponent: function(){
// call the extended class' initComponent method
this.callParent(arguments);
}
});
3. 应用详细配置项:
i
nitComponent: function(){
// apply our configuration to the class
Ext.apply(this, {
title: 'Display Panel',
html: 'Display some information here!',
width: 200,
height: 200,
renderTo: Ext.getBody()
});
// call the extended class' initComponent method
this.callParent(arguments);
}
4. 调用:
var displayPanel = Ext.create('Cookbook.DisplayPanel');
displayPanel.show();
版权声明:本文博客原创文章,博客,未经同意,不得转载。
ExtJS学习笔记:定义extjs类别的更多相关文章
- ExtJs学习笔记(1)---ExtJs安装及其使用
从官网下载了ExtJs的3.2版本号的SDK,包括了代码依赖的具体说明.文档.范例和其它文件.当中,adapter和resources文件是Ext正常执行所必须的,其它的仅在开发过程中使用到. Ada ...
- Extjs 学习笔记1
学习笔记 目 录 1 ExtJs 4 1.1 常见错误处理 4 1.1.1 多个js文件中有相同的控件,切换时无法正常显示 4 1.1.2 Store的使用方法 4 1.1.3 gridPanel ...
- ExtJs学习笔记之学习小结LoginDemo
ExtJs学习小结LoginDemo 1.示例:(登录界面) <!DOCTYPE html> <html> <head> <meta charset=&quo ...
- extjs 学习笔记(二)
EXTJS实用开发指南 1. 要使用ExtJS 框架的页面中一般包括下面几句: <link rel="stylesheet" type="text/css" ...
- EXTJS学习笔记
由于公司统一决策,决定使用EXTJS作为前台的开发UI框架,所以从今天开始学习EXTJS,对学习过程中遇到的问题做记录. 首先第一个问题:为什么要用ExtJS作为公司开发基础架构? 推荐一篇文章: ...
- [转]ExtJS学习笔记(二):handler与listener的区别
原文地址:http://blog.csdn.net/smilingleo/article/details/3733177 ExtJS里handler和listener都是用来对用户的某些输入进行处理的 ...
- Extjs学习笔记之九 数据模型(上)-extjs
来源:niutuku.com | vincent上传于2012-07-20 | 1802次浏览 | 0条评论 本文开始进入Extjs最核心最优秀的部分. 标签:Extjs 数据模型 Extjs的数 ...
- Extjs学习笔记--(六,选择器)
文档对象dom是javascript与页面元素的桥梁 选择器的作用就是通过元素的标签名,属性名,css属性名对页面进行快速,准确的定位及选择 Extjs的选择器:Ext.DomQuery Ext.qu ...
- Extjs学习笔记--(五,事件)
Extjs中事件包括浏览器事件(单机按钮,鼠标移动等触发)和内部事件(组件之间的联动) 绑定浏览器事件的过程Ext.EventManager 要为元素绑定事件,通常会使用EventManager.on ...
随机推荐
- Java解惑七:很多其它类之谜
谜题66 继承的问题. 对于实例方法:命名同样时,子类会覆写父类的方法,且訪问权限至少和父类一样大. 对于域:命名同样时,子类会隐藏父类的域,且訪问权限随意. 谜题67 不要重用库中的类名. 谜题68 ...
- ecshop首页调用指定分类的所有产品(指定一级调二级)
第一种方法 第一 在/includes/lib_goods.php下增加如下代码,用过网上的直接换掉就可以 function index_get_cat_id_goods_best_list($cat ...
- OpenMp高速分拣
#include <stdio.h> #include<stdafx.h> #include<iostream> #include <stdlib.h> ...
- 深入理解计算机系统之旅(四)处理器(CPU)的体系结构
1.前言 处理器是很复杂的系统,它不是一蹴而就的,它是经过不断的升级.更新.设计之后的产物,而且如今还在保持着不断的更新. 处理器仅仅能运行一系列的指令,每条指令都仅仅是运行某个简单的操作,比方数字相 ...
- ICTCLAS用的字Lucene4.9捆绑
它一直喜欢的搜索方向,虽然无法做到.但仍保持了狂热的份额.记得那个夏天.这间实验室.这一群人,一切都随风而逝.踏上新征程.我以前没有自己.面对七三分技术的商业环境,我选择了沉淀.社会是一个大机器,我们 ...
- ZOJ Monthly, October 2010 ABEFI
ZOJ 3406 Another Very Easy Task #include <cstdio> #include <cstring> const int N = 10000 ...
- 熟知CDN
一.概念 1.什么是CDN? CDN的全拼是(Content Delivery Network).即内容分发网络.其基本思想是尽可能避开互联网上有可能影响传输数据速度和稳定性瓶颈的环节,使内容传输的更 ...
- Android lint具 常见问题检查
1. Correctness 1) DuplicatedIds Layout于id应该唯一 2) NewApi 代码中使用的某些API高于Manifest中的Min SDK 3) Inconsiste ...
- 在线maven
仓库
findmaven.net是一个查找Jar和查找Maven的Maven仓库搜索引擎.它能够依据Java开发人员提供的Class名或者Jar名找到包括它的Jar,同一时候提供Jar的Maven仓库链接, ...
- Apple Watch 2.0 数据通讯
经常会碰到Watch app和WatchKit extension需要访问同一个文件.比如,使用一个自定义的字体,播放多媒体文件.有两种方法完成这个任务. 设计的时候,每个包放一份文件.它们分别访问自 ...