Javascript UI5:在每次导航期间渲染后访问视图的DOM ref

Javascript UI5:在每次导航期间渲染后访问视图的DOM ref,javascript,jquery,sapui5,Javascript,Jquery,Sapui5,我有两个UI5XML视图,并且在这两个视图之间实现了导航。每当我访问第二个视图时,我都会操纵HTMLDOM(使用jQuery和CSS)来做一些与外观相关的更改,这在UI5中默认情况下是不可用的 我的问题是:当我在第二个视图的(route)patternMatched处理程序中编写jQuery代码来操作DOM时,它没有工作,因为此时DOM不存在。当我将jQuery代码放在第二个视图的afterrendering()上时,它只在第一次访问时执行,因此在第二次访问之后不会给出所需的结果 你能告诉我如何

我有两个UI5XML视图,并且在这两个视图之间实现了导航。每当我访问第二个视图时,我都会操纵HTMLDOM(使用jQuery和CSS)来做一些与外观相关的更改,这在UI5中默认情况下是不可用的

我的问题是:当我在第二个视图的
(route)patternMatched
处理程序中编写jQuery代码来操作DOM时,它没有工作,因为此时DOM不存在。当我将jQuery代码放在第二个视图的afterrendering()上时,它只在第一次访问时执行,因此在第二次访问之后不会给出所需的结果

你能告诉我如何解决这个问题,或者我应该在这里做什么设计更改吗


此外,UI5中是否有任何设置,每次导航到视图时都会调用
onAfterRendering()

您可以使用
onBeforeShow
方法执行所需的操作

每次将要在屏幕上显示视图时,都会调用
onBeforeShow

但首先必须将事件附加到onInit中的视图。 代码:

如果在此事件处理程序中仍然找不到DOM元素,请记住
onBeforeShow
有一个姐妹:
onAfterShow
,它将在视图显示在屏幕上后调用


API链接:

Hi Rahul,感谢您的输入。你的解决方案帮了我的忙。它与onAfterShow()配合得很好:)我想知道为什么sapui5文档中没有此信息。。还是我错过了它!!??另外,您能否区分onAfterRendering()和onAfterShow()?这是否回答了您的问题?>当我在第二个视图的
(route)patternMatched
处理程序中编写jQuery代码来操作DOM时,它不起作用,因为此时DOM不存在。。。我无法复制它。在这里您可以看到它在那里是可访问的:。有关其他解决方案,请参阅我之前评论中的链接。
onInit : function () {
    this.getView().addEventDelegate({
        onBeforeShow : jQuery.proxy(function(evt) {
            this.onBeforeShow(evt);
        }, this)
    });
},

onBeforeShow: function() {

    console.log('called from on Before show');
    // DO manipulation here
}