Skip to Content
Author's profile photo Former Member

How to call function of one controller from another controller

Function of one (first) SAPUI5 view controller can be called from another (second) SAPUI5 view controller –


if this function is subscribed to some event of EventBus in the first controller:



onInit: function() {
    sap.ui.getCore().getEventBus().subscribe(
        "SomeChannel",
        "SomeEvent",
        this.someFunctionOfTheFirstController,
        this
    );
},
someFunctionOfTheFirstController: function (sChannelId, sEventId, sData) {
    console.log(
        "Function of the first controller " + sData
    );
}


and the same event of EventBus is published in the second controller:



functionOfTheSecondController: function () {
    sap.ui.getCore().getEventBus().publish(
        "SomeChannel",
        "SomeEvent",
        "is called from function of the second controller."
    );
}


Assigned Tags

      1 Comment
      You must be Logged on to comment or reply to a post.
      Author's profile photo John Juan
      John Juan

      Thanks for sharing this! Had a really hard time figuring out how to call a function on the Master controller from the Details controller in a split app scenario. It was exactly what I was looking for.