This question already has an answer here:
-
Global Model Not Accesible
4 answers
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?
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.
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);
}