XForms/加载
外观
< XForms
您希望在当前表单上加载新的资源。
在 HTML 中,链接很简单。您使用 HTML 锚标签
<a href="http://example.com">like label</a></nowiki>
但是,在 XForms 中,它稍微复杂一些
<xf:trigger appearance="minimal">
<xf:label>Go to Google</xf:label>
<xf:action ev:event="DOMActivate">
<xf:load show="replace">
<xf:resource value="'http://www.google.com'"/>
</xf:load>
</xf:action>
</xf:trigger>
XForms 的 xf:load 元素具有几个属性。
- ref - 对单个节点的静态引用
- resource - 静态 URL,例如相对 URL 或绝对 URL
- show - 是否创建新页面或替换当前页面。show 可以有两个值:new 或 replace。
- target - 要执行的目标操作
一个是加载资源的 URI,另一个是 show 属性。show 属性可以取“replace”值,这将用新资源替换当前表单,也可以取“new”值,这将在您的网络浏览器中打开一个新标签页,或者如果您正在运行较旧的浏览器(如 IE 6)则会打开一个新窗口。
<xf:load resource="search.xq" show="new"/>
<xf:load resource="search.xq" show="replace"/>
xf:load 还可以用于在表单加载时运行本地 javascript 函数
<xf:action ev:event="xforms-ready">
<xf:load resource="javascript:init()"/>
</xf:action>
请注意,xf:load 的 ref 属性只能是静态字符串。您不能在 XForms 应用程序更改时更改它。
如果您需要加载动态字符串,则可以通过在 xf:load 元素中使用 xf:resource 元素来实现。xf:resource 元素具有一个 value 属性,用于保存所有动态表达式。
例如,以下示例连接了一个 URL 和来自输入字段的搜索查询。
<xf:load show="replace">
<xf:resource value="concat(url, q)"/>
</xf:load>
某些实现允许您根据模式中的数据动态创建 URL。
<xf:load ev:event= "DOMActivate"
resource= "http://www.google.com/{concat(string(instance('instance')/a), '{', '{{', string(instance('instance')/b), '}', '}}')}/{{something}}/else">
</xf:load>
XForms/使用加载进行搜索 - 此示例演示了如何使用 xf:load 元素使用 REST 搜索服务 XForms/输出和链接 此示例向用户呈现一个链接列表。用户从列表中选择一个,然后加载该项目