如何在从子页面导航后关注输入字段?
onNavigateBtnClick: function() {
var oHistory = History.getInstance();
var sPreviousHash = oHistory.getPreviousHash();
if (sPreviousHash !== undefined) {
history.go(-1);
} else {
var bReplace = true;
this.getRouter().navTo("HomePage", {}, bReplace);
}
},
onAfterRendering: function() {
jQuery.sap.delayedCall(500, this, function() {
this.getView().byId("InputField").focus();
});
},
onAfterRendering
挂钩。onAfterRendering
方法。答案 0 :(得分:0)
解决此问题的三个步骤:
将视图的<App>
标签更新为autoFocus="false"
。这样可以防止UI5自动聚焦视图的第一个输入。
在控制器的onInit
中,将一种方法附加到导航视图时将触发的路由,如下所示:
onInit: function(){
var router = sap.ui.core.UIComponent.getRouterFor(this);
router.getRoute("routeTargetName").attachPatternMatched(this.onNavTo, this);
}
在控制器中声明onNavTo
方法,该方法将设置输入焦点:
onNavTo: function(route){
this.byId("MyInputField").focus();
}
现在,每当您使用路由器到{{1}}时,navTo("routeTargetName")
方法都会触发,从而将重点放在该字段上。