Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sapui5 数据绑定-getBindingContext()返回绝对路径而不是相对路径_Sapui5 - Fatal编程技术网

Sapui5 数据绑定-getBindingContext()返回绝对路径而不是相对路径

Sapui5 数据绑定-getBindingContext()返回绝对路径而不是相对路径,sapui5,Sapui5,我有一张桌子,我正在发射一个关于行选择的事件。在处理程序中,我希望获取所选行的上下文,然后为较低级别的oData对象创建新上下文,然后将其绑定到文本视图 我相信有一种非常简洁的方法可以做到这一点,但目前我: 获取绑定路径并添加字符串以创建到我的低级对象的路径: var path=oEvent.getParameters().listItem.getBindingContext().sPath+“/ComplianceNote” 这是返回一个以/作为第一个字符的路径,据我所知,这意味着它是服务的根

我有一张桌子,我正在发射一个关于行选择的事件。在处理程序中,我希望获取所选行的上下文,然后为较低级别的oData对象创建新上下文,然后将其绑定到文本视图

我相信有一种非常简洁的方法可以做到这一点,但目前我:

获取绑定路径并添加字符串以创建到我的低级对象的路径: var path=oEvent.getParameters().listItem.getBindingContext().sPath+“/ComplianceNote”

这是返回一个以/作为第一个字符的路径,据我所知,这意味着它是服务的根对象,或者这是一个“绝对”路径。我当前的解决方法是删除第一个字符:

path = path.substr(1, path.length);
然后我可以绑定我的文本视图:

noteText.bindElement(path);
noteText.bindProperty("text", "Note");
这很好用,但在我看来,这是一种用字符串进行黑客攻击的代码气味。我的问题是:

  • 为什么路径返回为“绝对”而不是“相对”
  • 实现这一目标的正确方法是什么。我一直在研究诸如setBindContext和bindText之类的东西
  • 干杯,
    Gregor

    OData还是OData?bRelative=!jQuery.sap.startsWith(sPath,“/”)(!bRelative)this.getBindingContext().getPath().substr(1)OData,oops。你的意思是用三元运算符检查第一个字符吗?i、 e
    var-bRelative=!jQuery.sap.startsWith(路径“/”)?(path):path.substr(1)是-如果您想将/Products(2)/Notes绑定到控件,如果它已经继承或设置了/Products(2)”的bindingContext,那么路径将是相对的,例如“Notes”没有斜杠,否则对于ODataModel,您需要设置完整路径“/Products(2)/Notes”绑定路径语法上的doco