首先,我们把wiki上的文档翻译一下:
远程链接标签允许对一个URL进行访问,但可以不刷新页面.
属性
名称 | 描述 |
id (required) |
元件ID |
href (required) |
用来获取内容的URL |
errorText |
如果取内容时发生了错误,向用户显示的提示 |
showErrorTransportText |
true/false - 当获取内容有问题的时候,是否把错误信息当作内容显示 |
notifyTopics |
远程调用完成后,对那些Topic进行事件激发,可以多个,用逗号分割 |
afterLoading |
远程调用完毕后,要执行的Javascript代码 |
Remote A标签我觉得值得关注的特性是notifyTopics,也就是可以触发别的控件的事件,它可以是一个发令员.
首先我们来看Remote A标签的一个例子
<ww:a id="link1" theme="ajax" href="/AjaxRemoteLink.action" showErrorTransportText="true" errorText="An Error ocurred">Click Me</ww:a> |
这个标签的含义:
- ID为link1
- 使用ajax模板
- 点击链接时访问的网址为"/AjaxRemoteLink.action"
- 如果发生错误把错误当作内容处理
- 错误信息为"An Error ocurred"
点击这个链接,页面会去访问"/AjaxRemoteLink.action",如果返回的结果是JavaScript,就会执行相应的JavaScript.
如果返回的内容不是JavaScript,系统不会有任何动作,也不会触发事件. (这个确实有点令人迷惑,也许会改进?如何改进哪?)
我们再来看一个可以触发事件的标签,这个是和DIV结合的,可以参考ajax例子中的lesson3中的例子:
<ww:div id="one" cssStyle="border: 1px solid yellow;" href="/ajax/test1.jspa" theme="ajax" listenTopics="mylink1_click" delay="1000">Initial Content</ww:div>
<ww:a id="link1" theme="ajax" href="/ajax/urltestjs.jspa" showErrorTransportText="true" notifyTopics="mylink1_click" errorText="An Error ocurred">Update</ww:a>
|
首先是一个要被触发的Div标签,它监听的Topic为"mylink1_click"(可以监听多个).然后是一个A标签,触发的Topic是"mylink1_click",此处也可以是多个,但用户点击这个Remote A标签时,A标签会执行返回的JavaScript代码,也会触发Div标签重新装载它自身的内容.
如果标签还有afterLoading='alert("done")'的代码,在触发Div事件之前还会执行这个 afterLoading,可以阅读前面Div标签中关于afterLoading的说明.
意外:这个Remote A的功能就这么多,本来以为应该有一个点击后用指定的内容替换目标Div的内容,不过目前没有发现有直观的做法可以实现这个功能,也许有其他做法更合适吧.
注意:撰写本文时,WebWork2.2还没有最后发布,在最后发布的版本里应该会有一些变化,请以最后发布的版本为准.
除经特别注明外,本文章版权归JScud Develop团队或其原作者所有.
转载请注明作者和来源. scud(飞云小侠) 欢迎访问 JScud Develop