SAPUI5 XML视图中的复杂绑定

SAPUI5 XML视图中的复杂绑定,sapui5,Sapui5,我试图在从JSONModel绑定字符串值时将其转换为布尔值。理想情况下,我的模型中的值为“true”/“false”,我希望将其绑定到项目的visible属性。该模型被定义为双向绑定,但我想在这种情况下这并不重要 我在index.html中声明了“复杂绑定” data-sap-ui-xx-bindingSyntax="complex" 然后,我创建XML视图并从模型中绑定属性,如下所示: columnKey=“{TableVariatafModel>Fieldname}” visible

我试图在从JSONModel绑定字符串值时将其转换为布尔值。理想情况下,我的模型中的值为“true”/“false”,我希望将其绑定到项目的visible属性。该模型被定义为双向绑定,但我想在这种情况下这并不重要

我在index.html中声明了“复杂绑定”

data-sap-ui-xx-bindingSyntax="complex" 
然后,我创建XML视图并从模型中绑定属性,如下所示:


columnKey=“{TableVariatafModel>Fieldname}”
visible=“{path:'tableVariantAFModel>visible',类型:'sap.ui.model.type.Boolean',模式:'sap.ui.model.BindingMode.TwoWay'}”
index=“{tableVariantAFModel>DisplayOrder}”>

我建议使用格式化程序。看见在格式化程序中,您可以编写:

visible="{path:'tableVariantAFModel>Visible', formatter: '.formatter.stringToBoolean'}" 
在格式化程序中,您可以创建如下函数:

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

您必须确保在控制器中实例化格式化程序,或者可以选择在控制器本身中选择一个函数。

我建议使用格式化程序。看见在格式化程序中,您可以编写:

visible="{path:'tableVariantAFModel>Visible', formatter: '.formatter.stringToBoolean'}" 
在格式化程序中,您可以创建如下函数:

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

您必须确保在控制器中实例化格式化程序,或者可以选择在控制器本身中选择一个函数。

对于这样的简单用例,您可以使用表达式绑定,而不是在某处实现附加逻辑

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

columnKey=“{TableVariatafModel>Fieldname}”
visible=“{=${tableVariantAFModel>visible}===='true'}”
index=“{tableVariantAFModel>DisplayOrder}”>

对于这样的简单用例,您可以使用表达式绑定,而不是在某处实现附加逻辑

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

columnKey=“{TableVariatafModel>Fieldname}”
visible=“{=${tableVariantAFModel>visible}===='true'}”
index=“{tableVariantAFModel>DisplayOrder}”>

谢谢Matti。我目前正在使用格式化程序本身。SAPUI5文档说格式化程序很简单。另外,如何在清单文件中定义复杂的绑定??这取决于您的UI5版本,但一般来说,您应该能够将设置添加到您的模型中。使用双向添加值defaultBindingMode。谢谢Matti。我目前正在使用格式化程序本身。SAPUI5文档说格式化程序很简单。另外,如何在清单文件中定义复杂的绑定??这取决于您的UI5版本,但一般来说,您应该能够将设置添加到您的模型中。使用TwoWay.sweet添加值defaultBindingMode!谢谢@matbt这是最棒的。太好了!谢谢@matbt这里有。