SAPUI5多数据绑定输出[object Promise]问题求助
解决SAPUI5中组合两个数据绑定值的问题
问题原因
你直接拼接两个绑定语法的写法不符合复合绑定规范,带formatter的绑定会因框架内部处理逻辑返回Promise对象,最终显示为[object Promise]。
正确解决方案
方案1:数组型复合绑定+自定义Formatter
将两个需要绑定的字段作为parts传入,通过新的formatter函数拼接结果:
<ObjectStatus text="{ parts: [ 'messages>user_id', { path: 'messages>type', formatter: '.formatter.notificationMsg' } ], formatter: '.formatter.combineUserAndMsg' }" icon="{ path: 'messages>type', formatter: '.formatter.notificationIcon' }" />
在formatter文件中添加拼接函数:
combineUserAndMsg: function(userId, formattedTypeMsg) { // 可按需添加分隔符或逻辑,示例: return `${userId}: ${formattedTypeMsg}`; }
方案2:表达式绑定(简单拼接场景)
若仅需简单字符串拼接,无需额外逻辑,可直接用表达式绑定组合值:
<ObjectStatus text="{= ${messages>user_id} + ': ' + ${messages>type, formatter: '.formatter.notificationMsg'} }" icon="{path: 'messages>type', formatter: '.formatter.notificationIcon'}" />
注意:表达式绑定要求formatter同步执行,若
notificationMsg涉及异步操作,优先用方案1。
关键注意点
确保已在bootstrap中启用复合绑定兼容模式:
<script id="sap-ui-bootstrap" src="..." data-sap-ui-complexbindingcompatibility="true" ... ></script>
内容的提问来源于stack exchange,提问作者MBP
相关产品推荐
相关产品推荐

