呈现目标视图后-不在init上,manifest.json中定义的OData模型会"出现"。

2020-08-23 04:26发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


问题与路由器以及在异步模式中创建"目标"视图的过程有关。

根视图(rootView)的控制器能够等待onInit函数中的元数据:

 onInit:function(){
   var model = this.getView()。getModel();  model.metadataLoaded()。then(function(){//.. ok!

但是,这在目标视图的任何其他控制器中都是不可能的(即使我将根视图作为目标)。 像这样的模型。getView()。getModel()在呈现目标之后而不是在初始化时出现。

如果我检查"网络"标签,则顺序为:

  1. 根视图
  2. 目标视图
  3. 根控制器(模型在onInit中定义)
  4. 目标控制器(模型在onInit中是 undefined
  5. 模型

我的问题是:

  1. 是否可以在目标的onInit的清单中定义模型?
  2. 如果不是,推荐的解决方案是什么? 要从服务中创建一个? 渲染后模型仍会被覆盖吗?
  3. 我在用异步模式弄乱了东西吗?

如果您查看了大多数文档和教程,清单中没有异步模式,或者没有这样的问题。 我的主要配置如下(注意async为true):

" rootView":{
 " viewName":" my.path.view.App",
 " type":" XML",
 "异步":是的,
 " id":" app"
 },

                  ...
                 " dataSource":" MY_SRV",
 " preload":是
                 ...
                 "路由":{
 " config":{
 " routerClass":" sap.m.routing.Router",
 " viewType":" XML",
 "异步":是的,
 " viewPath":" my.path.view",
 " controlAggregation":"页面",
 " controlId":" app",
 " transition":" slide",
 " viewLevel":1
 },
 "路线":[{
 " pattern":"",
 " name":" master",
 " target":" master"
 },{
 " pattern":"/img/{ID}",
 "名称":"产品",
 "目标":"产品"
 }],
 "目标":{
 "主人":{
 " viewName":"大师",
 " viewId":"主人",
 " viewLevel":1
 " clearControlAggregation":是
 },
 "产品":{
 " viewName":"产品",
 " viewLevel":2
 " clearControlAggregation":是
 }
 }
 }
 

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


问题与路由器以及在异步模式中创建"目标"视图的过程有关。

根视图(rootView)的控制器能够等待onInit函数中的元数据:

 onInit:function(){
   var model = this.getView()。getModel();  model.metadataLoaded()。then(function(){//.. ok!

但是,这在目标视图的任何其他控制器中都是不可能的(即使我将根视图作为目标)。 像这样的模型。getView()。getModel()在呈现目标之后而不是在初始化时出现。

如果我检查"网络"标签,则顺序为:

  1. 根视图
  2. 目标视图
  3. 根控制器(模型在onInit中定义)
  4. 目标控制器(模型在onInit中是 undefined
  5. 模型

我的问题是:

  1. 是否可以在目标的onInit的清单中定义模型?
  2. 如果不是,推荐的解决方案是什么? 要从服务中创建一个? 渲染后模型仍会被覆盖吗?
  3. 我在用异步模式弄乱了东西吗?

如果您查看了大多数文档和教程,清单中没有异步模式,或者没有这样的问题。 我的主要配置如下(注意async为true):

" rootView":{
 " viewName":" my.path.view.App",
 " type":" XML",
 "异步":是的,
 " id":" app"
 },

                  ...
                 " dataSource":" MY_SRV",
 " preload":是
                 ...
                 "路由":{
 " config":{
 " routerClass":" sap.m.routing.Router",
 " viewType":" XML",
 "异步":是的,
 " viewPath":" my.path.view",
 " controlAggregation":"页面",
 " controlId":" app",
 " transition":" slide",
 " viewLevel":1
 },
 "路线":[{
 " pattern":"",
 " name":" master",
 " target":" master"
 },{
 " pattern":"/img/{ID}",
 "名称":"产品",
 "目标":"产品"
 }],
 "目标":{
 "主人":{
 " viewName":"大师",
 " viewId":"主人",
 " viewLevel":1
 " clearControlAggregation":是
 },
 "产品":{
 " viewName":"产品",
 " viewLevel":2
 " clearControlAggregation":是
 }
 }
 }
 
付费偷看设置
发送
1条回答
灬番茄
1楼 · 2020-08-23 05:26.采纳回答

在初始化中,您必须使用this.getOwnerComponet()。getModel

一周热门 更多>