我想在我的xPages应用程序中使用AngularJS http://www.angularjs.org,但我发现一个奇怪的问题,即Angular正在使用的syntaxt与xPages共存。 Angular添加了特殊标记属性,这些属性是角度引擎/编译器的命令。典型地,Angular使用带有'ng'命名空间的属性。 e.g。
<div ng:app="" ng:controller="">
... content here ...
</div>
当我将这些属性放入xPages时,编辑器将其提升为错误,因为没有定义这样的'ng'命名空间。当我在xPage标签中定义这个命名空间时,DDE中没有错误,但是Domino从属性名称中删除了这个'ng'前缀,所以事情不起作用,我在浏览器中得到了这个结果:
<div app="" controller="">
... content here ...
</div>
有办法,怎么解决这个问题?
答案 0 :(得分:4)
xpages源代码生成器正在删除前缀,如果你有8.5.3,你可以这样做。
<xp:panel tagName="div">
<xp:this.attrs>
<xp:attr name="ng:app" value="test"></xp:attr>
<xp:attr name="ng:controller" value="test"></xp:attr>
</xp:this.attrs>
</xp:panel>
如果你还没有使用8.5.3,你必须做这样的事情:
<xp:text escape="false">
<xp:this.value><![CDATA[#{javascript:return "<div ng:controller='test' ng:app='test' >"; }]]></xp:this.value>
</xp:text>
<xp:text escape="false">
<xp:this.value><![CDATA[#{javascript:return "</div>"; }]]></xp:this.value>
</xp:text>
答案 1 :(得分:0)
来自xpage圣经:
“要使用新的ui组件,您需要扩展当前的xpages控件标记集。为此,请在xsp.config文件中指定新标记名称作为组件定义的一部分”
<faces-config>
<faces-config-extension>
<namespace-uri>...</namespace-uri>
<default-prefix>...</default-prefix>
</faces-config-extension>
</faces-config>
我从未添加过这样的库,但也许这有帮助