SAPUI5了解manifest.json:rootView以及如何将页面分配给应用程序

SAPUI5了解manifest.json:rootView以及如何将页面分配给应用程序,sapui5,manifest.json,Sapui5,Manifest.json,我正在尝试使用JSViews开发我的UI5应用程序。我想使用manifest.json文件来定义rootView,但我不确定应该在哪里实例化sap.m.App,sap.m.Page,然后在哪里调用sap.m.App:addPage&sap.m.App:placeAt 我用它作为如何构造应用程序的参考点(使用XML视图而不是JS视图) 在接下来的第一个教程中,我在index.html中创建了应用程序和页面,如下所示: var-app=new sap.m.app({initialPage:“logo

我正在尝试使用JSViews开发我的UI5应用程序。我想使用manifest.json文件来定义rootView,但我不确定应该在哪里实例化
sap.m.App
sap.m.Page
,然后在哪里调用
sap.m.App:addPage
&
sap.m.App:placeAt

我用它作为如何构造应用程序的参考点(使用XML视图而不是JS视图)

在接下来的第一个教程中,我在index.html中创建了应用程序和页面,如下所示:

var-app=new sap.m.app({initialPage:“logonPage”});
var page=sap.ui.view({id:“logonPage”,viewName:“views.logon”,type:sap.ui.core.mvc.ViewType.JS});
app.addPage(第页);
附件placeAt(“内容”);
但是对于
示例应用程序
,该文件根本不包含任何JS—相反,似乎应用程序是由创建的,并且应用程序和视图一起作为起点由加载


在JS视图中实例化
新应用程序
,并在
createContent
方法中使用
placeAt
似乎是不对的您应该如何使用JS视图执行相同的操作?。我是否应该离开JS在
index.html
中创建应用程序和页面?

出于安全原因,index.html不应该再包含代码(引导脚本除外)。这有点新,因此您将发现许多教程,它们将Shell容器或页面直接放置到html主体中

在主视图中,必须使用强制函数“createContent”,从中必须返回应该呈现的内容。 以下是JS视图的基本实现:

sap.ui.jsview("test.Test.view.View1", {
  getControllerName: function () {
    return "test.Test.controller.View1";
  },
  createContent: function (oController) {
    var oPage = new sap.m.Page({
        title: "{i18n>title}",
        content: []
    });

    var app = new sap.m.App("myApp", {
        initialPage: "oPage"
    });
    app.addPage(oPage);
    return app;
  }
});
在这种情况下,我的“test.test.view.View1”必须设置为清单文件中的根视图

查看有关如何初始化应用程序的更多信息


请看一下定义JS视图的基础知识。

感谢您的简要解释。现在我遇到的问题是,路由器正在尝试加载应用程序容器,但应用程序容器尚未按照您链接的app Init页面中的操作顺序存在。基本上,我的应用程序容器现在是在视图中创建的,但是视图是在Component.js:init之后加载的(路由器就是在这里初始化的)。有什么见解吗?在初始化路由器之前,在Component.js中调用“sap.ui.core.UIComponent.prototype.init.apply(这是参数);”吗?包含应用程序控件的视图是否在manifest.json中设置为根视图?如果您同时做了这两件事,您可能希望从您的文件中提取一些内容,例如清单、组件、索引、视图,来开始一个新问题。干杯