如何通过 itemId 从 ExtJS 中的 CartesianChart 对象获取工具
How to get a tool by itemId from a CartesianChart object in ExtJS
我有一个 Ext.chart.CartesianChart
和工具。我想 select itemId 的工具,使用图表对象 chart_o
。 getComponent
好像不行。
现在我正在 chart_o.tools
上骑行并检查 itemId 是否匹配。有内置方法吗?我正在使用 ExtJS 5.1.0
代码:
{
xtype: "Ext.chart.CartesianChart",
id: "tensioni_modulo",
title: '<div style="line-height:28px">Tensioni (modulo)</div>',
tools: [
{
type: "maximize",
itemId: "max",
},
{
type: "minimize",
itemId: "min",
},
],
}
编辑:
我使用 更新了函数:
function getToolByItemId(parent_id, tool_itemId) {
/**
* @author Marco Sulla (marcosullaroma@gmail.com)
* @author Emissary (
* @date Nov 20, 2015
*/
var p = Ext.getCmp(parent_id);
if (! p) {
throw new Error("No component with id '" +
parent_id.toString() + "'");
}
var h = p.getHeader();
if (! h) {
throw new Error("Component '" + parent_id.toString() +
"' has no header");
}
var tool = h.down("#" + tool_itemId);
if (! tool) {
throw new Error("No tool with itemId '" +
tool_itemId.toString() +
"' in component '" +
parent_id.toString() + "'");
}
return tool;
}
我认为这是一个错误,因为 tools
是一个 Ext.panel.Panel
配置,它实际上是指定 header
组件的 child 项的快捷方式 - 在turn 只是图表面板的 child,因此应该可以在 component-query 层次结构中访问。
在版本 6 中对此进行了测试,它似乎已得到修复 - 因此最好的办法是升级您的应用程序。但是,如果那不可能,您仍然可以通过强制/手动调用 getter 来引用停靠的 header 组件。 即
myChart.getHeader().down('#max'); // works in 5.1
我有一个 Ext.chart.CartesianChart
和工具。我想 select itemId 的工具,使用图表对象 chart_o
。 getComponent
好像不行。
现在我正在 chart_o.tools
上骑行并检查 itemId 是否匹配。有内置方法吗?我正在使用 ExtJS 5.1.0
代码:
{
xtype: "Ext.chart.CartesianChart",
id: "tensioni_modulo",
title: '<div style="line-height:28px">Tensioni (modulo)</div>',
tools: [
{
type: "maximize",
itemId: "max",
},
{
type: "minimize",
itemId: "min",
},
],
}
编辑:
我使用
function getToolByItemId(parent_id, tool_itemId) {
/**
* @author Marco Sulla (marcosullaroma@gmail.com)
* @author Emissary (
* @date Nov 20, 2015
*/
var p = Ext.getCmp(parent_id);
if (! p) {
throw new Error("No component with id '" +
parent_id.toString() + "'");
}
var h = p.getHeader();
if (! h) {
throw new Error("Component '" + parent_id.toString() +
"' has no header");
}
var tool = h.down("#" + tool_itemId);
if (! tool) {
throw new Error("No tool with itemId '" +
tool_itemId.toString() +
"' in component '" +
parent_id.toString() + "'");
}
return tool;
}
我认为这是一个错误,因为 tools
是一个 Ext.panel.Panel
配置,它实际上是指定 header
组件的 child 项的快捷方式 - 在turn 只是图表面板的 child,因此应该可以在 component-query 层次结构中访问。
在版本 6 中对此进行了测试,它似乎已得到修复 - 因此最好的办法是升级您的应用程序。但是,如果那不可能,您仍然可以通过强制/手动调用 getter 来引用停靠的 header 组件。 即
myChart.getHeader().down('#max'); // works in 5.1