繁体   English   中英

如何在openui5中将本地文件中的json对象用作数据模型?

[英]How to use a json object from a local file as a datamodel in openui5?

我对示例https://github.com/SAP/openui5-masterdetail-app有问题

我想在文件夹'webapp / localService / mockdata'中使用两个json文件Objects.json和LineItems.json

我有本地安装(没有WEB IDE)。 工作正常。

我进行了以下更改

webapp / manifest.json

...

"resources": "resources.json",
"dataSources": {
    "tableData_alias": {
        "uri": "localService/mockdata/Objects.json",
        "type": "JSON"
    }
}

...

"models": {
    "i18n": {
        "type": "sap.ui.model.resource.ResourceModel",
        "settings": {
            "bundleName": "sap.ui.demo.masterdetail.i18n.i18n"
        }
    },
    "tableData": {
        "type": "sap.ui.model.json.JSONModel",
        "dataSource": "tableData_alias",
        "preload": true
    }
},

webapp / view / Master.view.xml

...
items="{
        path: 'DataModel>/',
        sorter: {
            path: 'Name',
            descending: false
        },
        groupHeaderFactory: '.createGroupHeader'
    }"
...

webapp / controller / Master.controller.js

onInit : function () {
var dataModel = this.getOwnerComponent().getModel("tableData");
this.getView().setModel(dataModel, "DataModel");

// Control state model
var oList = this.byId("list"),
...

文件Objects.json将被加载,但主表未呈现。 (“详细信息”列表是以后对我的下一步...)

json文件

在浏览器的控制台中,我收到以下错误:_未能加载容器容器的组件。 原因:TypeError:无法获取未定义或空引用的属性'attachMetadataFailed'-_

请帮助,什么不正确。 (也许整个例子在github上?)

webapp/controller/Master.controller.js ,请尝试在onAfterRendering: function()而不要在onInit: function()

谢谢

请尝试以下解决方案。 我没有看到任何代码错误,但是您正在onInit函数中为上下文视图设置json模型,该模型可能为空。

webapp / view / Master.view.xml中 ,可以使用在manifest.json中定义的模型直接绑定聚合路径。

 ...
items="{
        path: 'tableData>/',
        sorter: {
            path: 'Name',
            descending: false
        },
        groupHeaderFactory: '.createGroupHeader'
    }"
...

谢谢。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM