Xpages-dominoDocument的计算属性无法按预期工作

时间:2018-11-01 08:49:20

标签: xpages

在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”

我希望我可以使数据绑定变得动态,所以我做错了什么?

1 个答案:

答案 0 :(得分:1)

属于xp:view元素的子元素的数据源需要在beforePageLoad 之前生成其属性。 “打印”声明将使您确认这一点,就像我几年前在“ Marty,您只是没有在第四维思考”(可​​能仍在TLCC网站上的网络研讨会上)一样。

将其作为面板的子级将使您能够提取beforePageLoad中设置的内容。

除非页面范围限制为request,否则在页面有效期内不能更改数据源。因此,您可以使用${javascript:...}代替#{javascript:...}