SAPUI5:如何创建控件层次结构?

SAPUI5:如何创建控件层次结构?,sapui5,Sapui5,我希望你能帮我做这件事。在阅读了好几次所有的文档,谷歌搜索了好几天等等之后,我没有找到一种方法来以一种干净的方式来解释我要解释的内容,我想我遗漏了一些东西,因为这是一个非常基本的场景 我正在使用oData模型,在本例中是2个命名模型,“Model1”、“Model2”。现在,我想显示一个基于oData路径的“父”组合框,以及一个根据选择更改其项的表,换句话说 Model1 { //JSON representation of the data. Accounts:[ "account 1"

我希望你能帮我做这件事。在阅读了好几次所有的文档,谷歌搜索了好几天等等之后,我没有找到一种方法来以一种干净的方式来解释我要解释的内容,我想我遗漏了一些东西,因为这是一个非常基本的场景

我正在使用oData模型,在本例中是2个命名模型,“Model1”、“Model2”。现在,我想显示一个基于oData路径的“父”组合框,以及一个根据选择更改其项的表,换句话说

Model1 { //JSON representation of the data.
 Accounts:[
  "account 1": {invoices: ["invoice1", "invoice2", "invoice3"]},
  "account 2": {invoices:["invoice4", "invoice5"]}
 ]
}
组合框:

<... items={Model1>/Accounts} /> -- This works and shows Account 1, and Account2.
/Accounts}/>--这可以工作并显示account1和Account2。
桌子


..
....
我想要的是表将其上下文更改为组合框上选择的帐户。关键是,这是可行的,但当它第一次加载视图时,因为没有选择帐户,它调用错误的odata路径MYSERVICE/Invoices,而不是什么都不做,因为帐户还没有设置,发票的路径,一旦选择了帐户,就应该是MYSERVICE/account(“Account1”)/Invoices

我知道我可以用代码来实现这一点,但我确信一定有一种干净的方法来实现这一点

说真的,这快把我逼疯了

谢谢你的帮助。

你确定吗

items="{Model1>Invoices}"
你要打电话吗?因为这是一个相对路径(没有前导斜杠),所以通常不应该进行调用

您可以做什么:

  • 处理组合框事件
  • 在此事件处理程序中,创建将表绑定到的路径。在您的例子中,路径可能如下所示:“/Account(Account1)”-“/{EntitySetName}({KEY})”。你可以利用这种方法
  • 使用以下路径设置表的上下文:

    oTable.bindObject({
    路径:sPath,
    型号:“型号1”,
    参数:{
    $expand:“发票”
    }
    });

  • 一旦设置了上下文,相对绑定将自动开始工作,表将获得“发票”


  • 我假设帐户和发票通过导航属性和一对多基数链接,这就是为什么$expand参数将加载相应的发票。

    对不起,我编辑了问题,因为“代码”没有转义。谢谢您的回答。虽然是一个相对路径,但它使用它的父上下文作为当前路径。我没有解释过,假设帐户的父项是User,并且设置了用户上下文,那么绑定将解析为User(1)/Invoices(不存在):(您的方法与我的方法类似,但更简洁,但是它仍然需要对关系进行“硬编码”。我担心不可能在XML视图中以声明方式完成所有这些工作,不幸的是,您必须从JS设置绑定。但是您可以尝试使用hack,您可以设置相同的模型,但祖父母和父母的名称不同和子级(如果需要)。在这种情况下,表将没有根上下文,因此不会解析相对路径。我也尝试了!它成功了,但我认为它不是太理想。呵呵,那么,如果唯一的方法是编码,我将这样做。非常感谢!
    items="{Model1>Invoices}"