我在8.5.3中有以下代码
<xp:div>
<xp:this.attrs>
<xp:attr name="data-theme" value="#{javascript:compositeData.data_theme}" />
<xp:attr name="data-position" value="#{javascript:compositeData.data_position}" />
<xp:attr name="data-role" value="footer" />
</xp:this.attrs>
</xp:div>
工作正常。但客户拥有Domino 8.5.2。此版本既不支持tagName
也不支持attr
。我有attr
计算的值。
如何在像
这样的构造中使用compositeDate<div data-position="#{javascript:compositeData.data-position}" ...
??
解决方法是使用计算文本
<xp:text escape="false" id="ctFooterDivStart">
<xp:this.value><![CDATA[#{javascript:"<div data-theme='"+ compositeData.data_theme + "' data-position='" + compositeData.data_position + "' data-role='footer'>"}]]></xp:this.value>
</xp:text>
但这很丑陋而难以阅读。
答案 0 :(得分:1)
到目前为止,解决方法是在源选项卡中编写data_position而不是data-position来设置shure,设计人员创建代码时没有错误。
接下来,我的页面上有一个小脚本块,用data-position
替换所有data_position$(document).ready(function () {$('div[data_position ]').each(function(){
$(this).attr('data-position ', $(this).attr('data_position ')); //does the switch
$(this).removeAttr('data_position '); //clears out the old one
});});
只是一种解决方法(想法)。没有检查,如果这确实是性能方面的最佳方式。 ...
答案 1 :(得分:1)
为此使用主题怎么样?
<control>
<name>div-data-theme</name>
<property mode="override">
<name>value</name>
<value>${javascript:@Char(60) + "div data-theme='" + compositeData.data_theme + "' data-position='" + compositeData.data_position + "' data-role='footer'" + @Char(62) + @Char(60) + "/div" + @Char(62)}</value>
</property>
<property mode="override">
<name>escape</name>
<value>${javascript:false}</value>
</property>
</control>
(@ Char是必需的,因为你不能在主题中使用括号而CDATA不起作用)
在自定义控件中,您可以通过添加 xp:text 元素来使用它:
<xp:text themeId="div-data-theme">
</xp:text>
如果您没有在 xp:text 组件中添加ID,则它不会被span标记包围。
答案 2 :(得分:0)
我现在决定使用计算文本。没有太多代码涉及。所以代码仍然可读。 以下是可折叠集(手风琴)
的示例...
<xp:text escape="false">
<xp:this.value><![CDATA[${javascript:var html = "<div "
html = html + "data-role='collapsible-set' "
html = html + "data-mini='" + compositeData.data_mini + "' "
Html = html + "data-theme='" + compositeData.data_theme + "' "
html = html + "data-inset='" + compositeData.data_inset + "' "
html = html + "data-iconpos='" + compositeData.data_iconpos + "' "
html = html + "data-content-theme='" + compositeData.data_content_theme + "' "
html = html + "data-collapsed-icon='" + compositeData.data_collapsed_icon + "' "
html = html + "data-expanded-icon='" + compositeData.data_expanded_icon + "'> "
return html}]]></xp:this.value>
</xp:text>
<xp:callback facetName="fctAccordion" />
<xp:text escape="false">
<xp:this.value><![CDATA[${javascript:"</div> "}]]></xp:this.value>
</xp:text>
...