如何从另一个视图的控制器刷新视图的模型?

2020-09-05 09:21发布

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

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


尊敬的Sappies,

我有一个这样的PlanningCalendar视图(仅重要部分):

 
     <页面...>
         
             <行>
                 
                     <任命>
                         
                 
             
         
     
  

现在,我想从另一个视图的控制器中的功能刷新所有约会。

我该如何实现? 可能吗?

谢谢您的帮助!

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

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


尊敬的Sappies,

我有一个这样的PlanningCalendar视图(仅重要部分):

 
     <页面...>
         
             <行>
                 
                     <任命>
                         
                 
             
         
     
  

现在,我想从另一个视图的控制器中的功能刷新所有约会。

我该如何实现? 可能吗?

谢谢您的帮助!

付费偷看设置
发送
9条回答
歪着头看世界
1楼 · 2020-09-05 10:15.采纳回答

一种选择是使用 核心或组件的EventBus

接收控制器需要这样的东西:

 this.getOwnerComponent()。getEventBus()。subscribe(" Default"," refresh",function(sChannel,sEventId,oData){
     this.oPlanningCalendar.getModel()。refresh(true);
 } .bind(this);
 

发送控制器需要以下条件:

 this.getOwnerComponent()。getEventBus()。publish(" Default"," refresh",{}); 

另一个想法是将模型的引用附加到您的组件。 然后,您可以从所有控制器访问它。

闻人可可
2楼-- · 2020-09-05 10:19

哦,对了!

但是如果我尝试

 sap.ui.getCore()。byId(" verfolgenView--planningCalendar")。getBinding(" rows")。refresh(); 

它仍然说sap.ui.getCore()。byId(" verfolgenView--planningCalendar")尚未定义。

我环顾四周,看来您无法从未打开的视图中获取控件。

但是,尽管它似乎不存在,但再次打开该视图时不会重新创建它,但是从上次打开该视图以来,它仍然具有旧值。

任何想法,如何解决?

微wx笑
3楼-- · 2020-09-05 10:27

你好,

您必须先在核心中设置模型,然后才能接收。

问候。

一周热门 更多>