我在网关项目中创建了一个EntityType。如何将该值绑定到SAPUI5中的列表?
<List id="id1" mode="{path: 'ODataManifestModel>EntitySetForBoolean', formatter: 'Formatter.formatForBoolean'}""
items="{..}"
因此我在清单JSON中定义了网关服务,并将其称为ODataManifestModel。现在,我想从booleanProperty绑定该值,并根据该值更改列表的模式。我很清楚该怎么做,但是我认为我没有正确地绑定它。因为这样我不确定前端如何知道我将使用该特定属性。我也尝试过这样的事情:
<List id="id1" mode="{path: 'ODataManifestModel>EntitySetForBoolean>booleanProperty', formatter: 'Formatter.formatForBoolean'}""
items="{..}"
但是那也不起作用,我在这里做错了吗?
答案 0 :(得分:1)
'ODataManifestModel>EntitySetForBoolean>booleanProperty'
几件事:
Entity Sets
而非Entity Type
中找到的entitySet名称。虽然您的名字看起来正确。mode
属性,并使用SEGW中定义的键来指定它->您的实体类型至少需要一个键字段。您无法使用索引访问OdataModel中的oData entitSet元素model>
之后,它必须以/
开头。或者,在元数据加载后,在控制器的init方法中,将一个元素绑定到整个视图
var that = this;
this.getOwnerComponent().getModel().metadataLoaded().then(function() {
that.getView().bindElement({path:"/EntitySetForBoolean('1234')" });
})
以在视图中使用相对绑定(而不以/
开头)/
而不是>
绝对绑定:
"ODataManifestModel>/EntitySetForBoolean('1234')/booleanProperty"
或者如果元素绑定到视图或视图中的父容器对象,则可以使用相对路径:
"ODataManifestModel>booleanProperty"
答案 1 :(得分:0)
mode 属性可以具有以下属性( None,SingleSelect,MultiSelect,Delete ),并将其应用于所有列表元素
答案 2 :(得分:0)
假设您的服务通过URL与此类似,则您的问题Northwinds oData V2中没有提供示例数据。
Open preview in external window
这里使用的是Products
实体集。
//manifest.json
"dataSources": {
"ODataManifestModel": {
"uri": "path_to_your_service",
"type": "OData",
"settings": {
"odataVersion": "2.0",
"localUri": "",
"annotations": []
}
},
..."models": {
"ODataManifestModel": {
"type": "sap.ui.model.odata.v2.ODataModel",
"settings": {
"defaultOperationMode": "Server",
"defaultBindingMode": "TwoWay",
"defaultCountMode": "None",
"useBatch": false
},
"dataSource": "ODataManifestModel"
},
..
}
//view.xml
<mvc:View controllerName="sap.otuniyi.sample.Master" xmlns:mvc="sap.ui.core.mvc" xmlns:core="sap.ui.core" xmlns="sap.m" xmlns:semantic="sap.m.semantic">
<semantic:MasterPage id="page" title="Contents">
<semantic:content>
<List items="{ODataManifestModel>/Products}" mode="SingleSelectMaster" noDataText="No Data Available" growing="true" growingScrollToLoad="true" selectionChange="onSelectionChange">
<items>
<ObjectListItem title="{ODataManifestModel>ProductName}" type="Active" icon="sap-icon://user-settings" press="onSelectionChange" />
</items>
</List>
</semantic:content>
</semantic:MasterPage>
</mvc:View>