Sapui5 自动JSONModel实例化

Sapui5 自动JSONModel实例化,sapui5,Sapui5,我有一个具有以下结构的应用程序: `| index.html | | +---webapp | |Component.js | |manifest.json | | | +---controller | |Detail.controller.js | |Master.controller.js | | | +---service | | data.json | | | \---view | App.view.xml | Detail.view.xml | Master.view.xml` 我的

我有一个具有以下结构的应用程序:

`| index.html
| |
+---webapp
| |Component.js
| |manifest.json
| |
| +---controller
| |Detail.controller.js
| |Master.controller.js
| |
| +---service
| | data.json
| |
| \---view
| App.view.xml
| Detail.view.xml
| Master.view.xml`
我的清单文件定义了如下数据源:

在sap.app下:

"dataSources": {
"mainService": {
"uri": "/service/data.json",
"type": "JSON"
}
}
我还尝试了路径为“service/data.json”的uri参数,但也不起作用

在sap.ui5下:

"models": {
"": {
"dataSource": "mainService",
"type": "sap.ui.model.json.JSONModel"
},
"i18n": {
"type": "sap.ui.model.resource.ResourceModel",
"settings": {
"bundleName": "sapui5.demo.mvcapp.i18n.i18n"
}
}
}
My Component.js具有以下代码:

sap.ui.define(["sap/ui/core/UIComponent", "sap/ui/model/json/JSONModel"], function( UIComponent, JSONModel)
{
    "use strict";
    return UIComponent.extend("sapui5.demo.mvcapp.Component",
    {

        metadata :
        {
            manifest : "json"
        },

        init : function()
        {
            // callthebasecomponent's initfunction
            UIComponent.prototype.init.apply(this, arguments);

            // createtheviewsbasedontheurl/hash
            this.getRouter().initialize();

        },

        createContent : function()
        {
            var oRootView = UIComponent.prototype.createContent.apply(this,
                    arguments);

            return oRootView;
        }
    });
});
My index.html具有以下脚本代码:

    sap.ui.getCore().attachInit(function() {
    sap.ui.require([
    "sap/m/Shell",
    "sap/ui/core/ComponentContainer",
    "sapui5/demo/mvcapp/Component"],
    function(Shell, ComponentContainer, Component) 
    {
        new Shell({
        app: new ComponentContainer({
             height: "100%",
             component: new Component({
             id: "mvcAppComponent"
             })
        })
      }).placeAt("content");
    });
        });
我无法从表上的本地json文件中获取要显示的数据。控制台上没有错误,主视图中的表为空“无数据”

看起来清单文件没有任何效果,因为我的路由也不起作用,我不确定主视图是如何显示的,因为即使我弄乱了主视图的名称,它仍然会显示,这表明清单文件没有生效

你能告诉我哪里出了问题吗

你好,Salah。

这是到Component.js的相对路径 (鉴于问题在于数据加载,而非数据绑定,以下内容适用。对于数据绑定问题,请发布控件绑定的代码片段)

manifest.json
文件已经在
webapp
文件夹结构中。根据Component.js(),由于
URI
地址是一个相对路径,因此您需要根据具体情况指定如下模型:

"dataSources": {
    "mainService": {
        "uri": "/service/data.json",
        "type": "JSON"
    } }

以上内容在“sap.app”下。同样在“sap.ui5”下:我有以下代码:“models”:{”“:{“dataSource”:“mainService”,“type”:“sap.ui.model.json.JSONModel”},如果数据加载正确,它将对表定义和数据结构有用。