2016-10-06 3 views
0

Я пытаюсь преобразовать строковое значение в Boolean, привязывая его к JSONModel. В идеале значение в моей модели «true»/«false», и я хочу привязать его к видимому свойству элемента. Модель определена как привязка TwoWay, но я думаю, что в данном случае это не имеет значения.Сложная привязка в SAPUI5 XML View

Я объявил «сложную привязку» в index.html.

data-sap-ui-xx-bindingSyntax="complex" 

Затем я создаю мой взгляд XML и связать свойство от модели, как показано ниже:

<P13nColumnsItem> 
 
    columnKey="{tableVariantAFModel>Fieldname}" 
 
visible="{path:'tableVariantAFModel>Visible', type: 'sap.ui.model.type.Boolean', mode: 'sap.ui.model.BindingMode.TwoWay'}" 
 
index="{tableVariantAFModel>DisplayOrder}"> 
 
    <P13nColumnsItem>

Когда я запускаю мое приложение, оно проливает ниже ошибки: enter image description here

Есть ли у меня какие-либо шаги? Кроме того, мне нужно добавить это приложение в Fiori Launchpad, поэтому мне нужно определить сложную привязку в файле manifest.json, а не в index.html. Где я могу определить его в файле манифеста.

ответ

1

Я бы посоветовал использовать форматировщик. См. here. В форматере вы могли бы написать:

visible="{path:'tableVariantAFModel>Visible', formatter: '.formatter.stringToBoolean'}" 

в форматере вы можете создать функцию, как:

stringToBoolean: function(_stringBoolean){ 
    (_stringBoolean === "true") ? return true : return false; 
} 

Вы должны убедиться, что вы экземпляр форматера в контроллере, или, возможно, вы могли бы выбрать функция в вашем контроллере.

+0

Thanks Matti. В настоящее время я использую formatters. Документация SAPUI5 говорит о том, что форматирование тривиально. Кроме того, как определить сложную привязку в файле манифеста? – Deepak

+0

Это зависит от вашей версии UI5, но, как правило, вы должны иметь возможность добавлять настройки в свою модель. Добавить значение defaultBindingMode с TwoWay. –

+0

Спасибо Matti. работает сейчас – Deepak

3

Для простых случаев использования вы можете использовать привязку выражения вместо того, чтобы где-то внедрять дополнительную логику.

<P13nColumnsItem> 
    columnKey="{tableVariantAFModel>Fieldname}" 
    visible="{= ${tableVariantAFModel>Visible} === 'true'}" 
    index="{tableVariantAFModel>DisplayOrder}"> 
<P13nColumnsItem> 
+0

сладкий! Спасибо @matbtt –

+0

Вот ссылка [sap help] (https://help.sap.com/saphelp_uiaddon10/helpdata/en/da/f6852a04b44d118963968a1239d2c0/content.htm). –

Смежные вопросы