在SAPUI5应用程序中,我在控制器中使用onBeforeRendering函数在视图显示之前更新视图。
在该功能中,我尝试使用以下方式获取路径:
var sPath = evt.getSource().getBindingContext().getPath();
但它告诉我evt.getSource()。getBindingContext()是未定义的。 但我需要它来获得模型。
通常我会得到这样的模型:
var data = this.getView().getModel().getData(sPath);
但现在我不能,因为我无法走上正轨。
使用:
var data = this.getView().getModel().getData();
它也不起作用(null)。
但是,在控制台中我可以使用以下方式获取模型:
var data = this.getView().getModel().oData;
但是,我知道这不是一件好事......
答案 0 :(得分:0)
阅读完问题后,我们会想到以下几点。要获得更准确的答案,我们需要查看您的代码。
this.getView().getModel().getData();
。 例如,如果您在ajax调用的成功函数中设置模型,则当您到达尝试调用它的行时,调用可能无法完成。
检查模型是否没有名称。如果是,请通过this.getView().getModel("model's-name-here").getData();
排队
var sPath = evt.getSource().getBindingContext().getPath();
您尝试从事件中获取模型(evt
)。检查onBeforeRendering
函数中是否包含该事件。
this.getView().setModel(oModel)
)而不是核心(sap.ui.getCore().setModel(oModel)
)。