You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SAP UI5绑定JSON模型数据到详情页出现oModel.createKey不存在错误

报错根因

createKey是**OData模型(sap.ui.model.odata.v2/v4.ODataModel)**专属的方法,你使用的是JSONModel,本身不提供这个API,所以调用会直接报错。

修复方案

将detail.controller.js中_onObjectMatched方法替换为以下代码,手动匹配数据索引拼接绑定路径即可:

_onObjectMatched: function (oEvent){
    var oModel = this.getView().getModel("articles");
    var sKeyId = oEvent.getParameter("arguments").articleId;
    var that = this;
    oModel.dataLoaded().then(function(){
        // 遍历数组匹配id获取索引
        var aArticles = oModel.getProperty("/Articles");
        var nTargetIndex = aArticles.findIndex(function(oArticle) {
            return oArticle.id === sKeyId;
        });
        if (nTargetIndex > -1) {
            // 绑定路径要指定对应模型名
            that.getView().bindElement({
                path: "/Articles/" + nTargetIndex,
                model: "articles"
            });
        }
    });
},

其他需要同步修正的问题

  • 重复加载模型:你已经在manifest中全局声明了articles模型,无需在main.controller.js的onInit中重复实例化加载同一份JSON数据,直接删除main.controller.js的onInit所有代码即可,框架会自动完成模型初始化挂载,所有视图可直接调用。
  • 绑定语法错误:detail.view.xml中ID字段的绑定多写了单引号,将<Text text="{articles>id'}"/>改为<Text text="{articles>id}"/>。

内容的提问来源于stack exchange,提问作者Naf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 16:15:04