extjs - 点号表示括号{}表示法?

时间:2012-09-08 18:26:15

标签: extjs

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

我可以在按钮后面输入代码:

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

但我需要做类似的事情:

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

所以我最终可以在一个循环中自动化几个标签属性:

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

我认为配置和项目只能用于构造()吗?有没有办法做到这一点? TIA。

1 个答案:

答案 0 :(得分:0)

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

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

一般情况下,我建议在构造时间之后始终使用方法调用来更改属性(如果可用),以便不破坏组件的内部工作。如果你看一下Ext.panel.Panel#setTitle的实现,你会发现很多内容正在进行中,例如:事件解雇等。

ExtJs 4配置

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

退房'2。 ExtJs Class System Guide

中的配置

从xtype / config literals创建对象

如果您想将组件添加到容器(例如标签面板的标签页),则很容易实现。

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

Ext.container.Container#add实际上在内部调用此方法,因此您只需将配置对象传递给add方法。

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

<强> applyConfig()

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