Ext JS - 在 运行 时间添加监听器
Ext JS - adding listeners at run-time
我希望能够将侦听器添加到设置文件中指定的活动元素。安装文件可能是这样的:
<listeners>
<listener>
<field>id</field>
<match>button-*</match>
<using>reg-exp</using>
<excludes>
<exclude>button-yes</exclude>
<exclude>button-no</exclude>
<exclude>button-cancel</exclude>
</excludes>
<event>click</event>
<action>onButtonClick</action>
</listener>
<listener>...</listener>
</listeners>
这意味着任何具有匹配 button-*
的元素,除了 button-yes
、-no
和 -cancel
,当 [=17] 时将调用 onButtonClick
=] 事件被触发。
不一定是内置事件,可以是自定义的,比如fileSystemException
,或者userTimedOut
。因此,可以在代码中的某处触发一个事件,所有侦听它的元素都将调用相应的操作。
理想情况下,希望在创建任何元素之前尽早加载设置文件,并且能够将侦听器添加到运行时创建的元素中。因此,例如,一个 ID 为 button-reject
的新元素,动态创建,满足条件,将获得侦听器。所以我猜它必须扩展一个低级别的创建方法?
在 ExtJS 中有这样的事情吗?比如扩展一个或多个基数 类?
如果您可以将此文件加载到 JSON 对象或 ExtJS HashMap, then you can globally listen for a component's afterrender 事件中以检查您的 HashMap 或 JSON 对象是否匹配并应用相应的侦听器。
类似的方法可能有效,但这确实意味着每个组件都必须检查是否有应应用的侦听器,这可能会产生巨大的性能开销。
我希望能够将侦听器添加到设置文件中指定的活动元素。安装文件可能是这样的:
<listeners>
<listener>
<field>id</field>
<match>button-*</match>
<using>reg-exp</using>
<excludes>
<exclude>button-yes</exclude>
<exclude>button-no</exclude>
<exclude>button-cancel</exclude>
</excludes>
<event>click</event>
<action>onButtonClick</action>
</listener>
<listener>...</listener>
</listeners>
这意味着任何具有匹配 button-*
的元素,除了 button-yes
、-no
和 -cancel
,当 [=17] 时将调用 onButtonClick
=] 事件被触发。
不一定是内置事件,可以是自定义的,比如fileSystemException
,或者userTimedOut
。因此,可以在代码中的某处触发一个事件,所有侦听它的元素都将调用相应的操作。
理想情况下,希望在创建任何元素之前尽早加载设置文件,并且能够将侦听器添加到运行时创建的元素中。因此,例如,一个 ID 为 button-reject
的新元素,动态创建,满足条件,将获得侦听器。所以我猜它必须扩展一个低级别的创建方法?
在 ExtJS 中有这样的事情吗?比如扩展一个或多个基数 类?
如果您可以将此文件加载到 JSON 对象或 ExtJS HashMap, then you can globally listen for a component's afterrender 事件中以检查您的 HashMap 或 JSON 对象是否匹配并应用相应的侦听器。
类似的方法可能有效,但这确实意味着每个组件都必须检查是否有应应用的侦听器,这可能会产生巨大的性能开销。