原文:SAPUI5:如何在每次显示视图时调用方法?本文介绍如何在SAPUI5中每次显示视图时执行一个方法。有两种方法可以实现这一点。SAPUI5提供了两种方式在每次调用视图时执行代码:视图控制器中的生命周期挂钩路由机制,例如匹配事件,例如调用自定义方法,或执行CRUD请求(创建、读取、更新、删除)。1.SAPUI5LifeCycleHooksinaView'sControlleronBeforeRendering:每次重新渲染视图之前执行代码。onAfterRendering:每次渲染视图时执行代码。除了onBeforeRendering和onAfterRendering生命周期挂钩之外,还有onInit和onExit挂钩。另一方面,每个视图实例只调用一次onBeforeRendering和onAfterRendering钩子:在实例化和销毁视图之后。下面是如何在控制器中使用onBeforeRendering和onAfterRendering挂钩的示例://在您的控制器中...//在视图呈现之前调用挂钩onBeforeRendering:function(){this.log("viewgetsrendered);},//钩子在视图渲染后被调用onAfterRendering:function(){this.log("viewisrendered);},日志:函数(sMessage){sap.base.Log.info(sStatus);}...2.SAPUI5路由机制:路由匹配和路由模式匹配事件如果你的应用程序使用SAPUI5路由框架,你可以使用它的机制在每次调用视图时调用你自己的代码。SAPUI5URL具有URL哈希值。例如,如果URL是webapp/index.html#/products/3,则URL哈希是#/products/3。routeMatched和routePatternMatched事件根据manifest.json中的路由设置检查URL哈希。每次匹配URL哈希时都会触发此事件。每次导航到视图及其URL时都会触发路由器事件。为了更清楚:一方面,路由器事件检查是否调用了正确的视图URL,并包括例如有效参数,例如对象ID。另一方面,只要使用有效的路由URL调用视图,就会触发路由器事件。以下是routeMatched和routePatternMatched事件之间的区别:routeMatched:每次URL的哈希与当前视图的路由模式的任何路由、子路由或嵌套路由匹配时调用。routePatternMatched:每次URL的哈希与当前视图的路由模式的路由匹配时调用。设置路由器事件需要两个步骤:在SAPUI5应用程序manifest.json中设置路由。在XML视图控制器中设置事件。1在manifest.json中设置路由SAPUI5应用程序及其视图的路由和架构在manifest.json中设置。例如://在你的manifest.json中..."sap.ui5":{..."routing":{"config":{...},"routes":[{"pattern":"",“名称”:“主页”,“目标”:“主页”},{“模式”:“产品”,“名称”:“产品”,“目标”:“产品”},{“模式”:“产品”/{productId}","name":"Product","target":"product"}],"targets":{"home":{"viewId":"home","viewName":"Home"},"employees":{"viewId":"products","viewName":"Products"},"employee":{"viewId":"product","viewName":"Product"}}}}在上面的manifest.json中定义了三个有效的路径和模型:
