SAPUI5:如何创建控件层次结构?
我希望你能帮我做这件事。在阅读了好几次所有的文档,谷歌搜索了好几天等等之后,我没有找到一种方法来以一种干净的方式来解释我要解释的内容,我想我遗漏了一些东西,因为这是一个非常基本的场景 我正在使用oData模型,在本例中是2个命名模型,“Model1”、“Model2”。现在,我想显示一个基于oData路径的“父”组合框,以及一个根据选择更改其项的表,换句话说SAPUI5:如何创建控件层次结构?,sapui5,Sapui5,我希望你能帮我做这件事。在阅读了好几次所有的文档,谷歌搜索了好几天等等之后,我没有找到一种方法来以一种干净的方式来解释我要解释的内容,我想我遗漏了一些东西,因为这是一个非常基本的场景 我正在使用oData模型,在本例中是2个命名模型,“Model1”、“Model2”。现在,我想显示一个基于oData路径的“父”组合框,以及一个根据选择更改其项的表,换句话说 Model1 { //JSON representation of the data. Accounts:[ "account 1"
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}"
你要打电话吗?因为这是一个相对路径(没有前导斜杠),所以通常不应该进行调用
您可以做什么:
oTable.bindObject({
路径:sPath,
型号:“型号1”,
参数:{
$expand:“发票”
}
});代码>
我假设帐户和发票通过导航属性和一对多基数链接,这就是为什么$expand参数将加载相应的发票。对不起,我编辑了问题,因为“代码”没有转义。谢谢您的回答。虽然是一个相对路径,但它使用它的父上下文作为当前路径。我没有解释过,假设帐户的父项是User,并且设置了用户上下文,那么绑定将解析为User(1)/Invoices(不存在):(您的方法与我的方法类似,但更简洁,但是它仍然需要对关系进行“硬编码”。我担心不可能在XML视图中以声明方式完成所有这些工作,不幸的是,您必须从JS设置绑定。但是您可以尝试使用hack,您可以设置相同的模型,但祖父母和父母的名称不同和子级(如果需要)。在这种情况下,表将没有根上下文,因此不会解析相对路径。我也尝试了!它成功了,但我认为它不是太理想。呵呵,那么,如果唯一的方法是编码,我将这样做。非常感谢!
items="{Model1>Invoices}"