如何观察 ZK 元素的数据属性?
How can I observe data-attributes of ZK elements?
我想在 ZK 元素的数据属性更改时在后端执行某些操作。
Javascript中有MutationObserver
,ZK中有类似的东西可以用吗?
我已经检查了 ZK Events
class 但是似乎没有监听属性变化的事件。
默认情况下,在更改组件上的 clientAttribute 时不会触发事件侦听器或类似事件。
变化从何而来?这是客户端发生的事件吗?或者对 Java 中的组件对象进行更改?你能解释一下用例吗?可能有不同的方法来实现它:)
编辑:交流后的技术方案。
从客户端到服务器端触发一个事件:
https://www.zkoss.org/wiki/ZK_Client-side_Reference/Communication/AU_Requests/Client-side_Firing#Fire_Event_Directly_to_Server
我建议改为触发 "onCustom"
事件(任何以 "on"+yourEventName
开头的事件名称)。您还需要在事件可选参数中使用 toServer:true
以将其直接触发到服务器。这是一个不错的选择:zAu.send(new zk.Event(wgt, "onFoo", {foo: 'my data'}, {toServer:true}));
其中 wgt
是小部件对象,"onFoo"
是自定义事件名称,{foo: 'my data'}
是有效负载,如果您需要发回任何东西到服务器,{toServer: true}
是可选参数,toServer 条目
触发的问题 onChange
是默认操作发送的默认事件。大多数组件上已经有与 onChange
相关的行为。您可能会触发一个默认工作流,该工作流需要特定的有效负载并造成错误情况。通过发送 onCustomName
(不管它是什么,只是不是默认事件)事件,您肯定只会通过调用 zAu.send
来触发侦听器
我想在 ZK 元素的数据属性更改时在后端执行某些操作。
Javascript中有MutationObserver
,ZK中有类似的东西可以用吗?
我已经检查了 ZK Events
class 但是似乎没有监听属性变化的事件。
默认情况下,在更改组件上的 clientAttribute 时不会触发事件侦听器或类似事件。
变化从何而来?这是客户端发生的事件吗?或者对 Java 中的组件对象进行更改?你能解释一下用例吗?可能有不同的方法来实现它:)
编辑:交流后的技术方案。 从客户端到服务器端触发一个事件: https://www.zkoss.org/wiki/ZK_Client-side_Reference/Communication/AU_Requests/Client-side_Firing#Fire_Event_Directly_to_Server
我建议改为触发 "onCustom"
事件(任何以 "on"+yourEventName
开头的事件名称)。您还需要在事件可选参数中使用 toServer:true
以将其直接触发到服务器。这是一个不错的选择:zAu.send(new zk.Event(wgt, "onFoo", {foo: 'my data'}, {toServer:true}));
其中 wgt
是小部件对象,"onFoo"
是自定义事件名称,{foo: 'my data'}
是有效负载,如果您需要发回任何东西到服务器,{toServer: true}
是可选参数,toServer 条目
触发的问题 onChange
是默认操作发送的默认事件。大多数组件上已经有与 onChange
相关的行为。您可能会触发一个默认工作流,该工作流需要特定的有效负载并造成错误情况。通过发送 onCustomName
(不管它是什么,只是不是默认事件)事件,您肯定只会通过调用 zAu.send