Accessing Core Model from Controller Not Working [

2019-06-12 16:14发布

问题:

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?

回答1:

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.



回答2:

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);
}


标签: sapui5