我在Component.js中添加了一个命名模型。我可以从任何视图访问带有其名称的模型,但我想从一个对我不起作用的控制器访问该模型。
sap.ui.core.getModel("modelName")
无效,sap.ui.getCore().getModel("modelName")
也无效。
如何从控制器中引用其包含的Component和命名模型?
答案 0 :(得分:8)
请在控制器中使用this.getView().getModel(name)
。为解决在onInit
中尚未准备好在组件中创建/从组件创建的模型的问题,我在基本控制器中添加了getModel
方法:
getModel : function(name) {
return this.getView().getModel(name) || this.getOwnerComponent().getModel(name);
}
答案 1 :(得分:8)
如果使用清单路径sap.ui5->模型注册模型,它似乎仅在控制器中可用
this.getOwnerComponent().getModel(modelName);
我特别为i18n型号体验过这一点。