如何将自定义属性添加到 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 是松散的,我可以轻松地修改对象,但在这种情况下,它不会按我预期的方式工作。
提前致谢....
最佳答案
我找到了解决方案。
ExtJs 正在提供 attributes
属性来获取所有自定义提供的属性:
属性:对象 为节点提供的属性。您可以使用此属性访问您提供的任何自定义属性。
因此,在初始配置期间注入(inject)自定义属性后,我通过使用属性获取它们:
listeners: {
click: function(node) {
$("#nodeId").val(node.id);
if (node.isLeaf()) {
$("#galleryImage").attr("src", "../Galleries/" + node.attributes.image);
}
}
}
关于asp.net - ExtJs 组件中的自定义对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2136303/