SAPUI5: возможно ли сделать вложенную привязку в фильтре привязок - PullRequest
0 голосов
/ 31 августа 2018

У меня есть XML-представление с TabFilterBar, которое включает в себя два IconTabFilter. Свойство count для первого IconTabFilter связано так:

count="{/TestDataSet(Systemid='XYZ', Version='1.0')/Value1}"

А для второго IconTabFilter:

count="{/TestDataSet(Systemid='XYZ', Version='1.0')/Value2}"

Внутри привязки я делаю фильтрацию. На данный момент значения фильтров для Systemid и Version просто жестко заданы.

Теперь я хочу прочитать значения фильтра из модели.

Для этого я создал модель JSON filterModel. В этой модели у меня есть свойство для Systemid и одно для Version. Он содержит фактическое значение для этого свойства.

Я могу использовать и прочитать новую модель со свойствами в представлении XML:

{filterModel>systemid}
{filterModel>version}

Я пытался знать, чтобы включить это в мою привязку IconTabFilter. Это выглядит так:

<IconTabBar id="TabFilterBar">
  <items>
    <IconTabFilter id="TabFilterOne" icon="sap-icon://database" iconColor="Neutral" text="{i18n>TabFilterOne}" count="{/TestDataSet(Systemid='{filterModel>systemid}', Version='{filterModel>version}')/Value1}"/>
    <IconTabFilter id="TabFilterTwo" icon="sap-icon://check-availability" iconColor="Neutral" text="{i18n>TabFilterTwo}" count="{/TestDataSet(Systemid='{filterModel>systemid}', Version='{filterModel>version}')/Value2}"/>
  </items>

Но это не работает.

Как архивировать, чтобы использовать привязку, вложенную в фильтр привязки?

1 Ответ

0 голосов
/ 31 августа 2018

Я не думаю, что на самом деле возможно вложить реквизит. Я бы сделал это следующим образом:

<IconTabBar id="TabFilterBar" binding="{/TestDataSet(Systemid='XYZ', Version='1.0')}">
  <items>
    <IconTabFilter count="{Value1}" id="TabFilterOne" icon="sap-icon://database" iconColor="Neutral" text="{i18n>TabFilterOne}"/>
    <IconTabFilter count="{Value2}" id="TabFilterTwo" icon="sap-icon://check-availability" iconColor="Neutral" text="{i18n>TabFilterTwo}"/>
  </items>
</IconTabBar>

И обновлять привязку IconTabBar всякий раз, когда ваш фильтр изменяется изнутри контроллера. Что-то вроде

  this.getView().byId("TabFilterBar").bindObject("/TestDataSet(Systemid='ABC', Version='47.11')")

должен это сделать

...