在XPage上,我定义了一个dominoDocument数据源,如下所示:
[ngModel]="X?.Y" (ngModelChange)="X.Y=$event"
在environment.properties中,我列出了键/值对:
<xp:view xmlns:xp="http://www.ibm.com/xsp/core"
xmlns:xc="http://www.ibm.com/xsp/custom">
<xp:this.resources>
<xp:bundle src="/datasources.properties" var="datasources" />
<xp:bundle src="/environment.properties" var="env"></xp:bundle>
</xp:this.resources>
<xp:this.data>
<xp:dominoDocument formName="fa_Attachment" var="attachDoc">
<xp:this.databaseName><![CDATA[#{javascript:return env["srv_notesname"] + "!!" + utilityBean.getFilePath() + "//" + datasources["db_inbox_filepath"]}]]></xp:this.databaseName>
</xp:dominoDocument>
</xp:this.data>
与datasource.properties类似:
# ENVIRONMENT SETTINGS REFERENCES
#
srv_notesname=Server01/Server/ACME
当我加载XPage时,我得到消息:
com.ibm.xsp.exception.EvaluationExceptionEx:执行时出错 JavaScript计算表达式执行JavaScript时出错 计算表达式脚本解释器错误,行= 1,列= 8: [ReferenceError]找不到“ env”
我希望我可以使数据绑定变得动态,所以我做错了什么?
答案 0 :(得分:1)
属于xp:view
元素的子元素的数据源需要在beforePageLoad 之前生成其属性。 “打印”声明将使您确认这一点,就像我几年前在“ Marty,您只是没有在第四维思考”(可能仍在TLCC网站上的网络研讨会上)一样。
将其作为面板的子级将使您能够提取beforePageLoad
中设置的内容。
除非页面范围限制为request
,否则在页面有效期内不能更改数据源。因此,您可以使用${javascript:...}
代替#{javascript:...}