将值从一个函数传递到另一个JS

时间:2019-11-29 07:13:55

标签: javascript function sapui5

以下问题

我有2个功能

这是我的onInit:

onInit: function() {
        sap.ui.core.UIComponent.getRouterFor(this).getRoute("CoObject").attachMatched(this._onRouteMatched, this);
    },

    _onRouteMatched: function(oEvent) {
        var sRoute = oEvent.getParameter("arguments").Route;
    }

并且我需要在此函数中使用sRoute的值:

_onWeiterButtonPress: function(oEvent) {
    var oRouter = this._getRouter();
    var AufNr = this.getView().byId("IptAufNr").getValue();
}

需要sRoute检查用户按下的图块,但我不知道如何在不设置全局值的情况下传递值吗?

感谢您的帮助

4 个答案:

答案 0 :(得分:0)

我认为一个解决方案可以是在sessionStorage上设置sRoute值,然后在_onWeiterButtonPress中使用它。 这是一个示例:

sessionStorage.setItem('sRoute', sRoute);//for set the value
sessionStorage.getItem('sRoute';//for get the value

答案 1 :(得分:0)

如何?

_onRouteMatched: function (oEvent) {
        var sRoute = getArgumentsFromRoute(oEvent);
    }

_onWeiterButtonPress: function (oEvent) {

        var oRouter = this._getRouter();
        var AufNr = this.getView().byId("IptAufNr").getValue();
        var sRoute = getArgumentsFromRoute(oEvent);
    }

function getArgumentsFromRoute(oEvent)
    {
        return oEvent.getParameter("arguments").Route;
    }

答案 2 :(得分:0)

您可以将objet作为navTo方法的第二个参数传递。

    onWeiterPressed: function (oEvent) {

        this.getRouter().navTo("detailView", {
            aufNr: this.getView().byId("IptAufNr").getValue();
        });

    },

,然后在视图中导航至:

    _onRouteMatched: function (oEvent) {

        // Get passed object
        var sObjectId = oEvent.getParameter("arguments").aufNr;

    },

全部写在文档中;)

答案 3 :(得分:0)

通过声明解决了@santhosh的帮助

_onRouteMatched: function(oEvent) {
    this.sRoute = oEvent.getParameter("arguments").Route;
}

现在,我可以从一个视图导航到3个不同的视图,分别取决于用户单击了哪个图块。

很多东西