如何在ExtJs中的控件对象中添加自定义属性。
例如:
var button = new Ext.Button({
text:"something",
id:"somethingId"
})
此控件来自服务器动态,我想编写我的自定义属性,如下所示:
var button = new Ext.Button({
text:"something",
id:"somethingId",
customField : "I created this one"
})
然后我想达到如下:
alert(button.customField);
在我的实际案例中,我正在使用此类型在服务器上创建AsyncTreeNode
并将它们发送到客户端并通过TreeLoader
附加它们,这些节点可以帮助我在点击时显示图片,所以我想要它们有一个地址字段,所以我可以在TreePanel
点击事件中获取它,这也会返回点击的节点:
listeners:{
click : function(clickedNode,eObj){
alert(node.customFields);
}
}
我试了但是它说undefined
。通常,由于JavaScript是松散的,我可以很容易地修改对象,但在这种情况下,它不会按照我预期的方式工作。
提前致谢....
答案 0 :(得分:2)
我找到了解决方案。
ExtJs提供attributes
属性来获取所有自定义提供的属性:
属性:对象 为节点提供的属性。您可以使用此属性访问您提供的任何自定义属性。
因此,在初始配置期间注入自定义属性后,我使用属性获取它们:
listeners: {
click: function(node) {
$("#nodeId").val(node.id);
if (node.isLeaf()) {
$("#galleryImage").attr("src", "../Galleries/" + node.attributes.image);
}
}
}
答案 1 :(得分:0)
在您的课程中包含以下代码:
config : {
renderTo: null,
},
constructor: function(config)
{
this.initConfig(config);
return this;
},
这种getter和setter方法,如果类没有定义这些方法,则在创建类时,每个配置属性的方法都会自动生成到类'原型中。 ......你可以按照自己的意愿访问属性。