Javascript 如何对表控件中的不同实体使用绑定?

Javascript 如何对表控件中的不同实体使用绑定?,javascript,sapui5,Javascript,Sapui5,我有一个SAPUI5表,其中汇总“项目”绑定到我的OData的“费用”实体。 “费用”是主要实体“索赔”的一部分,在OData中它们之间存在关联。我在调用中使用$expand命令来获取包含扩展实体的主索赔集。 Expenses}… 如果主实体'Claim'有标志'submitted:true',我想隐藏的每一行中都有一个Delete按钮。这现在是一个只读条目,因此按钮不应显示 我使用的FlexibleColumnLayout页面绑定到odata索赔集 var oView = this.getVi

我有一个SAPUI5表,其中汇总“项目”绑定到我的OData的“费用”实体。
“费用”是主要实体“索赔”的一部分,在OData中它们之间存在关联。我在调用中使用$expand命令来获取包含扩展实体的主索赔集。
Expenses}…

如果主实体'Claim'有标志'submitted:true',我想隐藏的每一行中都有一个Delete按钮。这现在是一个只读条目,因此按钮不应显示

我使用的FlexibleColumnLayout页面绑定到odata索赔集

var oView = this.getView().byId("ObjectPageLayout");
...
oView.bindElement({
    path: "/" + sObjectPath, //looks like: /ClaimSet('12345')
    model: "odata"
});
我不能对按钮使用
visible=“{odata>Submitted}”
,因为“odata>”现在指的是费用实体,而不是索赔实体。我可以访问表外的声明,例如标题部分视图顶部的声明

如何在费用实体的上下文中访问主索赔实体? 有没有一种不用创建单独的jsonmodel就可以做到这一点的方法?如果可能的话,我希望将其保存在XML中。

visible=“{odata>/submitted}”
应该可以完成这项工作。 使用
odata>
告诉模型,使用
/
告诉此模型的属性的绝对路径,而不是聚合的绝对路径

小心资本化。如果是“已提交”,则将其放入,而不是“已提交”。

visible=“{odata>/submitted}”
应完成该工作。 使用
odata>
告诉模型,使用
/
告诉此模型的属性的绝对路径,而不是聚合的绝对路径


小心资本化。如果是“已提交”,则将其置于“已提交”状态,而不是“已提交”。

或者,您可以在数据集上循环,并将“已提交”标志从索赔集添加到费用集本身,检查一些关键字段


不知道这两套是什么样子,所以不知道这是否对你有帮助!但是你可以一直尝试

或者,您可以在数据集上循环,并将提交标志从索赔集添加到费用集本身,检查一些关键字段


不知道这两套是什么样子,所以不知道这是否对你有帮助!但是你可以一直尝试

您可以尝试通过格式化程序函数执行此操作。在这里,您可以访问表中传递的每个内容,但也应该能够访问视图的bindingcontext。在这里,您可以访问表中传递的所有内容,但也应该能够访问视图的bindingcontext。不幸的是,这不起作用。我给它附加了一个格式化程序来查看该值,但它是“未定义”的。糟糕,这只有在使用属性为视图设置新模型时才有效。您可以访问控制器中提交的值吗?然后将此值指定给绑定到视图的模型。例如:var oViewModel=newjsonmodel({submitted:true,//这里是您提交的}的值);setModel(oViewModel,“objectView”);然后用visible=“{objectView>/submitted}”绑定,这就是我最后要做的,但我希望有一种更优雅的方式。我认为从子控件的绑定内部访问父实体是一个非常常见的用例。不幸的是,这不起作用。我给它附加了一个格式化程序来查看该值,但它是“未定义”的。糟糕,这只有在使用属性为视图设置新模型时才有效。您可以访问控制器中提交的值吗?然后将此值指定给绑定到视图的模型。例如:var oViewModel=newjsonmodel({submitted:true,//这里是您提交的}的值);setModel(oViewModel,“objectView”);然后用visible=“{objectView>/submitted}”绑定,这就是我最后要做的,但我希望有一种更优雅的方式。我认为从子控件的绑定内部访问父实体是一个非常常见的用例。