0

I have added a named model in Component.js. I can access model with its name from any view but I want to access this model from one of the controllers which is not working for me.

sap.ui.core.getModel("modelName") is not working and sap.ui.getCore().getModel("modelName") is also not working.

How to refer its containing Component and a named model from a controller?

Boghyon Hoffmann
  • 17,103
  • 12
  • 72
  • 170
Gana
  • 482
  • 3
  • 11
  • 32

2 Answers2

10

Please use this.getView().getModel(name) in your controller. To address the issue that models created in/from the Component are not yet ready in onInit I added a getModel method in my base controller:

getModel : function(name) {
    return this.getView().getModel(name) || this.getOwnerComponent().getModel(name);
}
matbtt
  • 4,230
  • 19
  • 26
8

If the model was registered using the manifest path sap.ui5->models it seems to be available in the controllers only by

  this.getOwnerComponent().getModel(modelName);

I have experienced this especially for the i18n model.

user2808624
  • 2,502
  • 14
  • 28