我试图弄清楚如何与Alfresco Share进行一些小程序间通信.这是一个简单的用例:
我们有2个小面板,让我们称它们为A和B.我希望能够在A中填写一个字段"name"(让我们说值为"Toto"),然后单击"提交"按钮.点击A中的提交按钮后,B应更新为"Good Morning Toto"等问候语.
谢谢你的答案.
感谢您的回答.你能详细说一下"让dashlet_b.get.html.ftl发布一些内容到dashlet_a.post.html.ftl"吗?
在dashlet_b.get.html.ftl中你有类似的东西我想:
<form id="..." action="" method="POST">
<input id="name" type="text" name="name" value=""/>
<input type="submit" id="send" value="Send" /></form>
Run Code Online (Sandbox Code Playgroud)
提交表单时,它会找到dashlet_b.post.js吗?您如何实际告诉将表单发送到dashlet_a.post.js?
要创建这些动态小面板,仅使用服务器端小面板webscript是不够的.您需要在浏览器中使用javascript逻辑来通知其他小面包的更改.这就是Alfresco通常这样做的方式:
浏览器Javascript Dashlet A:
YAHOO.Bubbling.fire("interDashletMessage",
{
message: "Hello World."
});
Run Code Online (Sandbox Code Playgroud)
浏览器Javascript Dashlet B:
YAHOO.Bubbling.on("interDashletMessage", function(layer, args) {
var message = args[1].message;
alert(message); // or write it to the dashlets HTML content
});
Run Code Online (Sandbox Code Playgroud)
这将使用名为"interDashletMessage"的自定义事件将消息从dashlet A发送到dashlet B.
如果您的dashlet B仅显示一些消息,则可能足以使用事件发送数据.如果它更复杂,您的dashlet需要首先将它的数据发布到存储库,然后触发"刷新"事件并让dashlet B从存储库刷新它的内容.这将涉及您可能需要编写的多个网页脚本.
我想这很简单。
每个 Dashlet 实际上都是一个网页脚本。所以你可以有多个网页脚本用于不同的用途。就像我有 dashlet_a 一样。获取.html.ftl 和 dashlet_a。发布.html.ftl。事实上,这两个是同一个网页脚本,一个只作用于帖子,另一个作用于获取。
所以你能做的就是让 dashlet_b. get .html.ftl 将一些内容发布到 dashlet_a.post.html.ftl。因此,您正在从 b 向 a 提交值。
下一步是刷新 dashlet_a,一种方法是进行全页刷新,但这不太好。更好的是:在 dashlet_a 中。post .html.ftl 您只需通过 YUI/JQuery 设置 dashlet_a 中定义的字段的值。获取.html.ftl。
看看默认的可配置小面板是如何做到这一点的,就像 webview 一样。如果您在配置中添加某些内容,则会直接显示该值。
| 归档时间: |
|
| 查看次数: |
1278 次 |
| 最近记录: |