【问题标题】:getBindingContext() returns undefinedgetBindingContext() 返回未定义
【发布时间】:2016-04-28 11:53:07
【问题描述】:

我正在开发一个 SplitApp。从列表中选择一个项目时,它会说

未捕获的类型错误:无法读取未定义的属性“getPath”

Master.controller.js

onSelect: function(oEvent) {
  this.showDetail(oEvent.getParameter("listItem") || oEvent.getSource());
},

showDetail: function(oItem) {
  // ...
  this.getRouter().navTo("detail", {
    from: "master",
    entity: oItem.getBindingContext().getPath().substr(1), // Error
    tab: this.sTab
  }, bReplace);
},

oItem.getBindingContext() 返回undefined。所以我认为问题在于绑定上下文。

Master.view.xml

<List id="list" growing="true" items="{data>/results}">
  <ObjectListItem id="listItem"
    title="{myModel>PROJECTNAME}"
    number="{myModel>REVENUE}"
    numberUnit="{myModel>CURRENCY}"
    press=".onSelect"
  />
</List>

Component.js

// JSONModel required from "sap/ui/model/json/JSONModel"
var oModel= new JSONModel();
oModel.loadData("Data.json");
this.setModel(oModel,"myModel");

列表已显示,但当我选择项目时,会引发错误。

【问题讨论】:

标签: sapui5


【解决方案1】:

getBindingContext(sModelName?)

获取给定模型名称的此对象的绑定上下文。如果对象本身没有设置绑定上下文并且没有自己的模型集,它将使用其父层次结构中定义的第一个绑定上下文。

您已为模型命名 (this.setModel(oModel, "myModel"))。 指定模型名称 (oItem.getBindingContext("myModel")) 以访问绑定上下文。

这同样适用于setBindingContext(oContext, "myModel")

【讨论】:

    【解决方案2】:

    试试:

    oItem.getBindingContext("myModel").getPath().substr(1)
    

    如果绑定的模型已命名,您必须将模型名称传递getBindingContext

    【讨论】:

      猜你喜欢
      • 2019-11-17
      • 1970-01-01
      • 2016-11-18
      • 2019-12-24
      • 2016-05-15
      • 2017-03-11
      • 2019-07-09
      • 2020-10-02
      • 2020-05-22
      相关资源
      最近更新 更多