Hierarchy
Ext.BaseExt.data.NodeInterfaceRequires
Files
本类是一个应用到Model的原型上的方法集合,使其具有Node API。这意味着树状模型 具有所有与树相关的方法。通常情况下, 开发者不会直接使用本类。为了保存树的状态和UI, 本类会在模型上创建一些额外的字段(如果它们不存在)。 这些字段记录为config选项。
子节点数组。
子节点数组。
设置为true允许展开和折叠当前节点。
Defaults to: false
扩展事件
Defaults to: []
本节点的子节点数组。如果本节点没有子节点,数组为空。
本节点的子节点数组。如果本节点没有子节点,数组为空。
本节点的第一个子节点的引用。如果本节点没有子节点,返回null。
本节点的第一个子节点的引用。如果本节点没有子节点,返回null。
本节点的下一个兄弟节点的引用。如果本节点没有下一个兄弟节点,返回null。
本节点的下一个兄弟节点的引用。如果本节点没有下一个兄弟节点,返回null。
本节点的父节点的引用。如果本节点是根节点,返回null。
本节点的父节点的引用。如果本节点是根节点,返回null。
本节点的上一个兄弟节点的引用。如果本节点没有上一个兄弟节点,返回null。
本节点的上一个兄弟节点的引用。如果本节点没有上一个兄弟节点,返回null。
本身
获取当前类的引用,此对象被实例化。不同于 statics,
this.self
是依赖范围,它意味着要使用动态继承。
参见 statics 详细对比
Ext.define('My.Cat', {
statics: {
speciesName: 'Cat' // My.Cat.speciesName = 'Cat'
},
constructor: function() {
alert(this.self.speciesName); // 依赖 'this'
},
clone: function() {
return new this.self();
}
});
Ext.define('My.SnowLeopard', {
extend: 'My.Cat',
statics: {
speciesName: 'Snow Leopard' // My.SnowLeopard.speciesName = 'Snow Leopard'
}
});
var cat = new My.Cat(); // alerts 'Cat' 猫
var snowLeopard = new My.SnowLeopard(); // alerts 'Snow Leopard' 雪豹
var clone = snowLeopard.clone();
alert(Ext.getClassName(clone)); // alerts 'My.SnowLeopard'
成员
插入一个或多个节点作为本节点的最后子节点。
如果插入的节点原先是另外一个父节点的子节点,它将会先从那个父节点移除。
待添加的节点或节点数组
如果添加的是单个节点,返回这个节点,如果添加的是节点数组,返回null
调用原来的方法,这是以前的override重写
Ext.define('My.Cat', {
constructor: function() {
alert("I'm a cat!");
}
});
My.Cat.override({
constructor: function() {
alert("I'm going to be a cat!");
this.callOverridden();
alert("Meeeeoooowwww");
}
});
var kitty = new My.Cat(); // alerts "I'm going to be a cat!"
// alerts "I'm a cat!"
// alerts "Meeeeoooowwww"
This method has been deprecated since 4.1
版本 使用 callParent 代替.
参数的参数,数组或'参数'对象
来自当前方法,例如: this.callOverridden(arguments)
返回调用重写方法的结果。
所谓的"parent"方法是指当前的方法。 这是以前的方法派生或重写(参见 Ext.define)。
Ext.define('My.Base', {
constructor: function (x) {
this.x = x;
},
statics: {
method: function (x) {
return x;
}
}
});
Ext.define('My.Derived', {
extend: 'My.Base',
constructor: function () {
this.callParent([21]);
}
});
var obj = new My.Derived();
alert(obj.x); // alerts 21
这可以用来重写如下:
Ext.define('My.DerivedOverride', {
override: 'My.Derived',
constructor: function (x) {
this.callParent([x*2]); // 调用原来的My.Derived构造
}
});
var obj = new My.Derived();
alert(obj.x); // 现在提示 42
This also works with static methods.
Ext.define('My.Derived2', {
extend: 'My.Base',
statics: {
method: function (x) {
return this.callParent([x*2]); // 调用 My.Base.method
}
}
});
alert(My.Base.method(10); // alerts 10
alert(My.Derived2.method(10); // alerts 20
然后,它也可以重写静态方法。
Ext.define('My.Derived2Override', {
override: 'My.Derived2',
statics: {
method: function (x) {
return this.callParent([x*2]); // 调用 My.Derived2.method
}
}
});
alert(My.Derived2.method(10); // 现在提示 40
这个参数, 通过当前方法得到数组或者 arguments
对象,
例如: this.callParent(arguments)
返回调用父类的方法的结果。
创建本节点的副本。
一个新的id, 默认为本节点的id。
True递归复制所有子节点到新的Node节点。 False只复制当前节点,不复制子节点。
Defaults to: false
当前节点的副本。
查找属性名为attribute值为指定的value的第一个子节点。
属性名
属性值
True查找所有的子节点,包括子节点的子节点。
Defaults to: false
找到的子节点或者null,如果没有找到
通过自定义函数查找匹配的第一个子节点。
函数,如果节点匹配其规则,返回true
函数中this引用的作用域,默认为正在检测的节点。
True查找所有的子节点,包括子节点的子节点。
Defaults to: false
找到的子节点或者null,如果没有找到
这个类的初始化配置。典型例子:
Ext.define('My.awesome.Class', {
// 这是默认配置
config: {
name: 'Awesome',
isAwesome: true
},
constructor: function(config) {
this.initConfig(config);
}
});
var awesome = new My.awesome.Class({
name: 'Super Awesome'
});
alert(awesome.getName()); // 'Super Awesome' 超级棒
配置
mixins 混入原型 键-值对
Inserts the first node before the second node in this nodes childNodes collection.
The node to insert
The node to insert before (if null the node is appended)
The inserted node
Insert a node into this node
The zero-based index to insert the node at
The node to insert
The record you just inserted
Removes this node from its parent
True to destroy the node upon removal.
Defaults to: false
Removes all child nodes from this node.
<True to destroy the node upon removal.
Defaults to: false
从本节点中移除一个子节点
移除的节点
True移除节点之后立即销毁该节点
Defaults to: false
Replaces one child node in this node with another.
The replacement node
The node to replace
The replaced node
获取从该对象被实例化的类的引用。 请注意不同于 self,
this.statics()
是独立的作用域,无论this
是否运行,总是返回其中的调用类。
Ext.define('My.Cat', {
statics: {
totalCreated: 0,
speciesName: 'Cat' // My.Cat.speciesName = 'Cat'
},
constructor: function() {
var statics = this.statics();
alert(statics.speciesName); // 总是等于'Cat',无论'this'是什么,
// 相当于:My.Cat.speciesName
alert(this.self.speciesName); // 依赖 'this'
statics.totalCreated++;
},
clone: function() {
var cloned = new this.self; // 依赖 'this'
cloned.groupName = this.statics().speciesName; // 相当于: My.Cat.speciesName
return cloned;
}
});
Ext.define('My.SnowLeopard', {
extend: 'My.Cat',
statics: {
speciesName: 'Snow Leopard' // My.SnowLeopard.speciesName = 'Snow Leopard'
},
constructor: function() {
this.callParent();
}
});
var cat = new My.Cat(); // alerts 'Cat', 然后提示 'Cat'
var snowLeopard = new My.SnowLeopard(); // alerts 'Cat', 然后提示 'Snow Leopard'
var clone = snowLeopard.clone();
alert(Ext.getClassName(clone)); // alerts 'My.SnowLeopard'
alert(clone.groupName); // alerts 'Cat'
alert(My.Cat.totalCreated); // alerts 3
配置扩展
方法/属性添加到这个类的原型。
Ext.define('My.awesome.Cat', {
constructor: function() {
...
}
});
My.awesome.Cat.implement({
meow: function() {
alert('Meowww...');
}
});
var kitty = new My.awesome.Cat;
kitty.meow();
成员
添加/重写这个类的静态属性。
Ext.define('My.cool.Class', {
...
});
My.cool.Class.addStatics({
someProperty: 'someValue', // My.cool.Class.someProperty = 'someValue'
method1: function() { ... }, // My.cool.Class.method1 = function() { ... };
method2: function() { ... } // My.cool.Class.method2 = function() { ... };
});
成员
this
这个类的原型借用另一个类的成员
Ext.define('Bank', {
money: '$$$',
printMoney: function() {
alert('$$$$$$$');
}
});
Ext.define('Thief', {
...
});
Thief.borrow(Bank, ['money', 'printMoney']);
var steve = new Thief();
alert(steve.money); // alerts '$$$'
steve.printMoney(); // alerts '$$$$$$$'
this 借用成员
创建这个类的新实例。
Ext.define('My.cool.Class', {
...
});
My.cool.Class.create({
someConfig: true
});
所有参数传递至类的构造。
创建的实例。
创建现有的原型方法的别名。例如:
Ext.define('My.cool.Class', {
method1: function() { ... },
method2: function() { ... }
});
var test = new My.cool.Class();
My.cool.Class.createAlias({
method3: 'method1',
method4: 'method2'
});
test.method3(); // test.method1()
My.cool.Class.createAlias('method5', 'method3');
test.method5(); // test.method3() -> test.method1()
别名新方法的名称,或对象设置多个别名。 参见flexSetter
原来的方法名
这个方法使你能够装饰一个Model类,让其实现NodeInterface。 这给每一个Record添加了一些方法、事件属性和字段。
Model类或者你想装饰其原型的 那个Model类的实例。
以字符串格式,获取当前类的名称。
Ext.define('My.cool.Class', {
constructor: function() {
alert(this.self.getName()); // alerts 'My.cool.Class'
}
});
My.cool.Class.getName(); // 'My.cool.Class'
className 类名
重写这个类的成员。通过callParent重写的方法可以调用。
Ext.define('My.Cat', {
constructor: function() {
alert("I'm a cat!");
}
});
My.Cat.override({
constructor: function() {
alert("I'm going to be a cat!");
this.callParent(arguments);
alert("Meeeeoooowwww");
}
});
var kitty = new My.Cat(); // alerts "I'm going to be a cat!我要成为一只猫!"
// alerts "I'm a cat!我是一只猫!"
// alerts "Meeeeoooowwww"
在4.1版本, 直接利用这种方法已经过时了。 使用 Ext.define 代替:
Ext.define('My.CatOverride', {
override: 'My.Cat',
constructor: function() {
alert("I'm going to be a cat!");
this.callParent(arguments);
alert("Meeeeoooowwww");
}
});
以上完成了相同的结果,但可以由Ext.Loader重写, 其目标类和生成过程中,可以决定是否需要根据目标类所需的状态覆盖管理(My.Cat)。
This method has been deprecated since 4.1.0
使用 Ext.define 代替
添加到这个类的属性。 这应当被指定为一个对象包含一个或多个属性的文字。
this class 当前类
当添加一个新的子节点时触发
本节点
新添加的节点
新添加的节点的索引
The options object passed to Ext.util.Observable.addListener.
附加一个新的子节点之前触发,返回false取消附加。
本节点
待附加的子节点
The options object passed to Ext.util.Observable.addListener.
本节点折叠前触发。
折叠的节点
The options object passed to Ext.util.Observable.addListener.
本节点展开前触发。
展开的节点
The options object passed to Ext.util.Observable.addListener.
在插入一个新的子节点之前触发,返回false取消插入。
本节点
待插入的子节点
插入的节点之后的本节点的子节点
The options object passed to Ext.util.Observable.addListener.
本节点被移动前触发。返回false取消移动。
本节点
本节点的原父节点
本节点的新父节点
节点的新索引
The options object passed to Ext.util.Observable.addListener.
在移除一个新的子节点之前触发,返回false取消移除。
本节点
待移除的节点
true
如果移除本节点是为了将它移到树中的其它位置
(对有父节点的节点调用appendChild或者insertBefore的一个副作用
The options object passed to Ext.util.Observable.addListener.
本节点折叠时触发。
折叠的节点
The options object passed to Ext.util.Observable.addListener.
本节点展开时触发。
展开的节点
The options object passed to Ext.util.Observable.addListener.
当插入一个新的子节点时触发
本节点
插入的子节点
插入的节点之后的本节点的子节点
The options object passed to Ext.util.Observable.addListener.
本节点被移动时触发。
本节点
节点的原父节点
节点的新父节点
节点移动后的索引
The options object passed to Ext.util.Observable.addListener.
当移除一个新的子节点时触发
本节点
移除的节点
true
如果移除本节点是为了将它移到树中的其它位置
(对有父节点的节点调用appendChild或者insertBefore的一个副作用
The options object passed to Ext.util.Observable.addListener.
本节点的子节点排序时触发
本节点
本节点的子节点
The options object passed to Ext.util.Observable.addListener.