SAPUI5全局模型读取值失败:变量路径无法正常工作
问题
我尝试从全局模型中读取Model值,硬编码写法可正常运行:
this.getView().getModel().oData['Requests(WorkItemGroup=\'000000092008\',Approver=\'800365\',RequestNumber=\'829\')']
但换成变量路径后无法正常工作,变量定义如下:
this.g_eventContextPath = "Requests(WorkItemGroup=\'000000092008\',Approver=\'800365\',RequestNumber=\'829\')"
原因及解决办法
问题出在变量的转义字符处理上。硬编码时,方括号内的字符串用单引号包裹,内部单引号用\转义是正确的;但用双引号定义变量时,内部的\'会被解析成单个单引号,导致变量实际存储的字符串和硬编码的内容不一致。
修正变量定义
可以采用两种方式修正:
- 用单引号定义变量,内部单引号保留转义:
this.g_eventContextPath = 'Requests(WorkItemGroup=\'000000092008\',Approver=\'800365\',RequestNumber=\'829\')'
- 用双引号定义变量,内部单引号无需转义:
this.g_eventContextPath = "Requests(WorkItemGroup='000000092008',Approver='800365',RequestNumber='829')"
更规范的读取方式
SAP UI5中不建议直接访问模型的oData内部属性,推荐使用官方提供的getProperty方法读取数据:
this.getView().getModel().getProperty(this.g_eventContextPath);
内容的提问来源于stack exchange,提问作者user695310
相关产品推荐
相关产品推荐

