你似乎在使用ODataModel
。在ODataModels對集合/聚合的綁定並不像使用JSONModel那樣容易。您無法使用collection/index/property
語法訪問/綁定屬性。
如何ODataModels存儲數據
如果加載實體設置喜歡你UserDetailSet
存儲在您的數據ODataModel喜歡看起來有點像這樣:
{
UserDetailSet('00001'): { ... },
UserDetailSet('00002'): { ... },
UserDetailSet('00003'): { ... },
UserDetailSet('00004'): { ... }
}
而「00001」等字樣IS實體鍵。如果您在UserDetailSet
上創建聚合綁定,則ODataListBinding將處理將上述數據轉換爲每個項目的上下文。
屬性綁定上ODataModel
你的綁定必須是這樣的:
<Label text="Name" />
<Input value="{mock>/UserDetailSet('00001')/Name}" />
<Label text="Surname" />
<Input value="{mock>/UserDetailSet('00001')/Surname}"/>
動態屬性綁定上ODataModel
或 - 多一點動態 - 像這樣綁定(注意:綁定現在是相對的,不是領先的/
):
<SimpleForm id="MyForm">
<Label text="Name" />
<Input value="{mock>Name}" />
<Label text="Surname" />
<Input value="{mock>Surname}"/>
</SimpleForm>
和動態的SimpleForm本身使用bindElement
:
this.getView().byId("MyForm").bindElement({
path: "/UserDetailSet('"+ sUserID +"')",
model: "MyOdataModelID",
// use OData parameters here if needed
parameters: {
"expand": "UserAdress"
},
// react on binding events here
events: {
change: function (oEv) { },
dataRequested: function (oEv) { },
dataReceived: function (oEv) {}
}
});
BR 克里斯
嗨 感謝您的幫助。仍然沒有工作,但感謝您的教育反應。 問候 –
可以後多一點你的代碼 – cschuff
的喜 再說什麼是在戰後初期,我有以下 清單 「數據源」:{ \t \t \t「mainService」:{ \t \t \t \t「 URI 「: 」/在這裏/去/你/的serviceUrl /「, \t \t \t \t 」類型「: 」OData的「, \t \t \t \t」 setti NGS「:{ \t \t \t \t \t 」註釋「:[], \t \t \t \t \t 」odataVersion「: 」2.0「, \t \t \t \t \t 」localUri「: 」本地服務/ metadata.xml中「 以及我的表單字段下方的一個List,它實際上是基於模擬服務器顯示數據。我沒有我的視圖控制器的init事件中的代碼。我想你這樣的代碼 this.getView()byId( 「MyForm的」)bindElement({ 路徑: 「/ UserDetailSet( '00001')」, 模式: 「模擬」})。 問候 –