0

不确定这是一个好标题...

我可以在按钮后面获取代码:

TabBar.activeTab.setTitle("New Tab");

但我需要做类似的事情:

TabBar.activeTab.items = { title: "New Tab"
};

所以我最终可以在一个循环中自动化几个选项卡属性:

TabBar.activeTab.items = { [key]: [value]
};

我认为配置和项目只能在construct()上使用是否正确?有没有办法做到以上几点?蒂亚。

4

1 回答 1

0

它取决于组件和配置属性的实现,是否可以简单地设置或需要应用方法调用。

您是正确的,在 ExtJs 中,许多配置属性是在构建时解释的。有些是在渲染时解释的。渲染后,Ext.Component几乎所有属性都需要正确应用显式方法调用。

一般来说,我建议始终使用方法调用在构造时间之后更改属性(如果可用),以免破坏组件的内部工作。如果您查看实现,Ext.panel.Panel#setTitle您会发现幕后发生了很多事情,例如事件触发等。

ExtJs 4 配置

Ext 4 引入了一个明确的“配置”机制,可能会满足您的目的。但是,我的理解是大多数 ExtJs 组件(还没有?)使用它。

签出'2。ExtJs类系统指南中的“配置”

从 xtype/config 文字创建对象

如果您想将组件添加到容器中(例如,将选项卡添加到选项卡面板),这将很容易完成。

使用Ext.ComponentManager#create(参见 [docs][2])从您的配置文字创建一个实际的组件对象/实例。

Ext.container.Container#add实际上在内部调用此方法,因此您可以简单地将配置对象传递给该add方法。

如果您想删除或添加选项卡到面板,现在可以调用正确的方法。

应用配置()

当然,您始终可以applyConfig通过将配置“翻译”为正确的方法调用来实现自己的方法,该方法支持在运行时更改某些组件配置属性。

于 2012-09-10T03:38:34.157 回答