Binding 在控制器中获取模型

Binding 在控制器中获取模型,binding,model,controller,sapui5,Binding,Model,Controller,Sapui5,在SAPUI5应用程序中,我在控制器中使用onBeforeRendering函数在视图显示之前更新视图 在函数中,我尝试使用以下方法获取路径: var sPath = evt.getSource().getBindingContext().getPath(); 但它告诉我evt.getSource().getBindingContext()是未定义的。 但我需要它来得到模型 通常我会得到这样的模型: var data = this.getView().getModel().getData(sP

在SAPUI5应用程序中,我在控制器中使用onBeforeRendering函数在视图显示之前更新视图

在函数中,我尝试使用以下方法获取路径:

var sPath = evt.getSource().getBindingContext().getPath();
但它告诉我evt.getSource().getBindingContext()是未定义的。 但我需要它来得到模型

通常我会得到这样的模型:

var data = this.getView().getModel().getData(sPath);
但现在我不能,因为我找不到路

与:

它也不工作(空)

但是,在控制台中,我可以使用以下方法获取模型:

var data = this.getView().getModel().oData;

但是,我知道这不是一件好事……

在阅读了你的问题后,我想到了以下几点。要获得更准确的答案,我们需要查看您的代码

  • 检查您是否尝试调用模型
    this.getView().getModel().getData()
    例如,如果在ajax调用的success函数中设置模型,那么当您到达尝试调用它的行时,调用可能不会完成

  • 检查模型是否没有名称。如果是,则通过
    this.getView().getModel(“model's-name-here”).getData()调用它

  • 一致

    var sPath=evt.getSource().getBindingContext().getPath()

  • 您尝试从事件(
    evt
    )获取模型。检查
    onbeforeredering
    函数中是否存在该事件

  • 检查您是否将调用的模型附加到视图(
    this.getView().setModel(oModel)
    )而不是核心(
    sap.ui.getCore().setModel(oModel)

  • 为了帮助您,我们需要查看更多的代码。您能告诉我们您是如何将模型设置为视图的吗?
    var data = this.getView().getModel().oData;