每次显示页面时如何设置焦点

时间:2017-06-15 17:07:52

标签: javascript view sapui5

我想在每次显示视图时将焦点设置在输入上。 所以我正在使用这样的事件onAfterRendering

onAfterRendering : function(evt) {
    var oCtrl = this;
    jQuery.sap.delayedCall(500, this, function() {
        oCtrl.getView().byId("myInput").focus();
    });
},

这很好,但只是第一次。再次显示页面时,焦点未按预期设置。

我需要知道如何在每次调用视图时重点关注。

1 个答案:

答案 0 :(得分:2)

onAfterRendering仅在页面重新呈现后才会被调用。但整页重新渲染相对不常见的事件。据我所知,你需要在导航到这条路线时设置焦点。对于这种情况,您应该考虑使用路由的onPatternMatched事件。每次您导航到此路线时都会触发此操作。

我的回答的重点是,你不能只依赖onAfterRendering事件的页面。您应该考虑使用其他更改源。

P.S。在Safari中,focus()不起作用。这是Safari的标准限制。