Используйте переменную модели внутри привязки агрегации xml - PullRequest
0 голосов
/ 25 января 2019

Я пытаюсь использовать привязку TreeTable к OData с фильтрами. Но значение фильтра находится внутри другой модели. Этот пост о привязке представления XML.

Модель 1 (получено по параметрам навигации):

{
  locationID: 'MD',
  locationName: 'My location'
}

Итак, мое дерево таблицы:

<table:TreeTable rows="{
      path: '/Model2',
      filters: [
          {
              path: 'LOC_ID',
              operator: 'EQ',
              value1: '{Model1>/locationID}'
          }
      ],
      parameters: {
          treeAnnotationProperties : {
              hierarchyLevelFor : 'HIERARCHY_LEVEL',
              hierarchyNodeFor : 'ROW_ID',
              hierarchyParentNodeFor : 'PARENT_ROW_ID',
              hierarchyDrillStateFor : 'DRILL_STATE'
          }
      }
}">

Что ты думаешь? в любом случае?

Ответы [ 2 ]

0 голосов
/ 25 января 2019

Вы должны использовать контроллер, привязанный к представлению.

Вы можете написать небольшую логику в функции onInit.

onInit: function () {
  var table = this.byId("yourTableName");
  // get the value you want to use (not sure where and how your 
  // model is loaded)
  var value = this.getView().getModel().getParameter("yourParameter");
   
  // Bind your items here, use whatever you need and insert your filter value
  // Sorters etc can be added here
  table.bindItems({
    path: '/Model2',
    filters: [
      {
          path: 'LOC_ID',
          operator: 'EQ',
          value1: value
      }
    ],
    template: this.byId("tableTemplate"),
    templateShareable: true,
    parameters: {
      //your parameters
    }
  });
}

Для правильной работы измените ваш XML.

<Table ...>
  <columns>
    ...
  </columns>
  < ! - - Your items need to be swapped out for dependents - - >
  <dependents>
    <ColumnListItem
      id="tableTemplate">
      ...
    </ColumnListItem>
  </dependents>
</Table>

Все это работало нормально для таблицы sap.m.Table - но это должно быть адаптировано для вашего случая.

0 голосов
/ 25 января 2019

Насколько я знаю, фильтры XML не поддерживают значения из моделей JSON / OData.Вы можете использовать только константы или иначе, вы можете реализовать это в вашем контроллере JavaScript на соответствующем маршруте.

...