首先,我們把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