如何在xml视图上的另一个OData对象上显示内部的OData对象?[沙皮]

如何在xml视图上的另一个OData对象上显示内部的OData对象?[沙皮],odata,sapui5,Odata,Sapui5,我有这个OData模型: <EntityType Name="Request"> <Key> <PropertyRef Name="Id"/> </Key> <Property Name="AirTicketBuyer" Type="Edm.String" Nullable="true" MaxLength="50"/> <Property Name="AirTicketBuyerEmail" Type="Edm.String"

我有这个OData模型:

<EntityType Name="Request">
<Key>
<PropertyRef Name="Id"/>
</Key>
<Property Name="AirTicketBuyer" Type="Edm.String" Nullable="true" MaxLength="50"/>
<Property Name="AirTicketBuyerEmail" Type="Edm.String" Nullable="true" MaxLength="50"/>
<Property Name="BusTicketBuyer" Type="Edm.String" Nullable="true" MaxLength="50"/>
<Property Name="BusTicketBuyerEmail" Type="Edm.String" Nullable="true" MaxLength="50"/>
<Property Name="CostCenter" Type="Edm.Int32" Nullable="false"/>
<Property Name="Created" Type="Edm.DateTime" Nullable="false"/>
<Property Name="Currency" Type="Edm.Int32" Nullable="false"/>
<Property Name="Department" Type="Edm.Int32" Nullable="false"/>
<Property Name="DepartureDate" Type="Edm.DateTime" Nullable="false"/>
<Property Name="DepartureRoute" Type="Edm.String" Nullable="false" MaxLength="100"/>
<Property Name="DepartureTransportationType" Type="Edm.String" Nullable="false" MaxLength="1"/>
<Property Name="Destination" Type="Edm.String" Nullable="false" MaxLength="128"/>
<Property Name="DestinationType" Type="Edm.String" Nullable="false" MaxLength="1"/>
<Property Name="ExpirationDate" Type="Edm.DateTime" Nullable="false"/>
<Property Name="Id" Type="Edm.Int32" Nullable="false"/>
<Property Name="IdApplicant" Type="Edm.Int32" Nullable="true"/>
<Property Name="IdCompany" Type="Edm.Int32" Nullable="false"/>
<Property Name="IdUser" Type="Edm.Int32" Nullable="false"/>
<Property Name="Reason" Type="Edm.String" Nullable="false" MaxLength="200"/>
<Property Name="RequestCode" Type="Edm.String" Nullable="false" MaxLength="15"/>
<Property Name="RequestFatherId" Type="Edm.Int32" Nullable="true"/>
<Property Name="RequestStatus" Type="Edm.Int32" Nullable="false"/>
<Property Name="RequestType" Type="Edm.Int32" Nullable="false"/>
<Property Name="ReturnDate" Type="Edm.DateTime" Nullable="false"/>
<Property Name="ReturnRoute" Type="Edm.String" Nullable="false" MaxLength="100"/>
<Property Name="ReturnTransportationType" Type="Edm.String" Nullable="false" MaxLength="1"/>
<Property Name="SapCodeApplicant" Type="Edm.String" Nullable="true" MaxLength="6"/>
<Property Name="SapCodeUser" Type="Edm.String" Nullable="true" MaxLength="6"/>
<Property Name="StartFlowDate" Type="Edm.DateTime" Nullable="false"/>
<Property Name="TipoReq" Type="Edm.String" Nullable="true" MaxLength="2"/>
<Property Name="TotalAdvance" Type="Edm.Decimal" Nullable="false" Precision="12" Scale="2"/>
<NavigationProperty Name="ApprovalsRequestDetails" Relationship="rva-persistence.ApprovalsRequest_Request_Many_ZeroToOne0" FromRole="Request" ToRole="ApprovalsRequest"/>
<NavigationProperty Name="CostCenterDetails" Relationship="rva-persistence.Request_CostCenter_Many_ZeroToOne0" FromRole="Request" ToRole="CostCenter"/>
<NavigationProperty Name="CurrencyDetails" Relationship="rva-persistence.Currency_Request_One_Many0" FromRole="Request" ToRole="Currency"/>
<NavigationProperty Name="DepartmentDetails" Relationship="rva-persistence.Department_Request_One_Many0" FromRole="Request" ToRole="Department"/>
<NavigationProperty Name="ExpenseAdvanceDetails" Relationship="rva-persistence.ExpenseAdvance_Request_Many_ZeroToOne0" FromRole="Request" ToRole="ExpenseAdvance"/>
<NavigationProperty Name="CompanyDetails" Relationship="rva-persistence.Company_Request_One_Many0" FromRole="Request" ToRole="Company"/>
<NavigationProperty Name="UsersDetails" Relationship="rva-persistence.Users_Request_One_Many0" FromRole="Request" ToRole="Users"/>
<NavigationProperty Name="PassengerDetails" Relationship="rva-persistence.Passenger_Request_Many_ZeroToOne0" FromRole="Request" ToRole="Passenger"/>
<NavigationProperty Name="ReportDocumentDetails" Relationship="rva-persistence.ReportDocument_Request_Many_ZeroToOne0" FromRole="Request" ToRole="ReportDocument"/>
<NavigationProperty Name="RequestStatusDetails" Relationship="rva-persistence.Request_RequestStatus_Many_ZeroToOne0" FromRole="Request" ToRole="RequestStatus"/>
<NavigationProperty Name="RequestTypeDetails" Relationship="rva-persistence.RequestType_Request_One_Many0" FromRole="Request" ToRole="RequestType"/>
</EntityType>
在我的详细信息页面中,我看不到“用户”对象的属性

这项工作:

<Input fieldGroupIds="datos_suscripcion" value="{detailView>/TipoReq}"
                       placeholder="Código..." 
                       id="inTipoReq"/>

这不起作用:

第一路:

<Input fieldGroupIds="datos_suscripcion" value="{detailView>/UsersDetails>/UserName}"
                       placeholder="Usuario..." 
                       id="inUsuario"/>
<Input fieldGroupIds="datos_suscripcion" value="{detailView/UsersDetails>/UserName}"
                       placeholder="Usuario..." 
                       id="inUsuario"/>

第二种方式:

<Input fieldGroupIds="datos_suscripcion" value="{detailView>/UsersDetails>/UserName}"
                       placeholder="Usuario..." 
                       id="inUsuario"/>
<Input fieldGroupIds="datos_suscripcion" value="{detailView/UsersDetails>/UserName}"
                       placeholder="Usuario..." 
                       id="inUsuario"/>

感谢您的回复:)

更新1

@艾伦,我试着这么做:

第一:

<VBox items="{path : 'detailView>/',  parameters: {expand: 'UsersDetails'} }">
                <Input fieldGroupIds="datos_suscripcion" value="{UserName}"
                    placeholder="Usuario..." 
                    id="inUsuario"/>
            </VBox>

第二:

<VBox items="{path : 'detailView>/',  parameters: {expand: 'UsersDetails'} }">
                    <Input fieldGroupIds="datos_suscripcion" value="{detailView>/UsersDetails/UserName}"
                        placeholder="Usuario..." 
                        id="inUsuario"/>
                </VBox>

奇怪的是,当我选择主对象时,Alan的方法和我的方法都会使输入在我的页面中出现多次


我的页面类似于Master Deail示例。我的页面包含在主对象列表中。当我选择主对象时,其属性将显示在详细信息页面上。我使用press事件在详细信息页面上显示属性。因此,不会触发请求。。。您可以使用更多详细信息查看示例。

无法直接访问导航属性。您可以按以下方式进行变通:

<VBox items="{path : 'detailView>/',  parameters: {expand: 'UsersDetails'} }">
   <Label text="{destination}"></Label>
   <VBox items={UsersDetails}>
      <Label text="{UserName}"></Label>
   </VBox>
</VBox>

因此,您需要两个模板来运行绑定。如果不起作用,请尝试在每个绑定之前添加detailView>/。

是否可以尝试使用该扩展?如果它不起作用,打开devtools并检查哪个请求被发送到后端(在网络选项卡中)。我也更新了我的答案,请查看它。如果这样做有效,只需将Input的标签替换为新的更新即可。我收到以下消息错误:在克隆操作期间,发现一个模板既没有标记为“templateShareable:true”也没有标记为“templateShareable:false”。框架不会破坏模板。这可能会导致错误(例如重复ID)或内存泄漏(模板用于对象“_vbox0”)的聚合“项”。有关详细信息,请参阅“聚合绑定”下的文档-
  {"AirTicketBuyer":"xxxx",
   ..,
   "TotalAdvance";"xxxx",
   "UserDetails": {
      "results":[{
           "UserName": "this is an user name", 
           ...
       }]
   }}