首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XBL中的Orbeon事件可以从Javascript发送吗?

XBL中的Orbeon事件可以从Javascript发送吗?
EN

Stack Overflow用户
提问于 2011-10-11 19:04:43
回答 1查看 392关注 0票数 2

Orbeon版本: Orbeon Forms 3.8.0.201005270113

我在Javascript文件中有以下代码。执行此代码,但似乎找不到XBL中的模型。

代码语言:javascript
复制
ORBEON.xforms.Document.dispatchEvent("model-name", "event-name");

以下是XBL中的模型。XBL中有几种模型。我没有看到任何信息,所以似乎找不到模型。我在日志里没有看到任何错误。

代码语言:javascript
复制
<xforms:model id="model-name" xxforms:external-events="event-name">
  <xforms:action ev:event="event-name">
    <xforms:message>Test</xforms:message>
  </xforms:action>
</xforms:model>

有人知道从Javascript到XBL的调度是否有什么诀窍吗?

非常感谢!

更新:

另一件事可能是问题所在(也许?)就是使用实例(这个)从XBL调用javascript不起作用。我不知道类的实例是否与组件实例相关联,因此无法找到模型?

以下是不调用init方法的xbl对javascript的调用:

代码语言:javascript
复制
<xxforms:script>YAHOO.xbl.fr.myTest.instance(this).init();</xxforms:script>

下面是调用init()方法的调用:

代码语言:javascript
复制
<xxforms:script>YAHOO.xbl.fr.myTest.prototype.init();</xxforms:script>

以下是javascript:

代码语言:javascript
复制
YAHOO.namespace("xbl.fr");
YAHOO.xbl.fr.myTest = function() {};
ORBEON.xforms.XBL.declareClass(YAHOO.xbl.fr.myTest, "xbl-fr-myTest");

YAHOO.xbl.fr.myTest.prototype = {
},

init: function() {
    alert('test');
},

valueChanged: function() {
},

};
EN

回答 1

Stack Overflow用户

发布于 2011-10-12 13:52:41

AFAIK您不能直接从外部处理XBL内部模型,因为它具有强大的封装性。

相反,您必须使用dispatch the event to the 。例如,如果您希望fr:currency XBL的一个实例处理某个特定事件,则必须将该事件分派给fr:currency,这是XForm的一部分。

在XBL内部,您可以定义xbl:handlers to act upon that event,触发一些JavaScript操作或其他操作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7731133

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档