我正在尝试将字符串值转换为Boolean,同时从JSONModel绑定它。理想情况下,我的模型中的值是“true”/“false”,我想将它绑定到项的visible属性。该模型被定义为TwoWay绑定,但我想在这种情况下无关紧要
我在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>
我错过了什么步骤? 此外,我需要将此应用程序添加到Fiori Launchpad,因此我需要在 manifest.json 文件中而不是在index.html中定义复杂绑定。我在哪里可以在清单文件中定义它。
答案 0 :(得分:3)
对于这样的简单用例,您可以使用表达式绑定,而不是在某处实现其他逻辑。
<P13nColumnsItem>
columnKey="{tableVariantAFModel>Fieldname}"
visible="{= ${tableVariantAFModel>Visible} === 'true'}"
index="{tableVariantAFModel>DisplayOrder}">
<P13nColumnsItem>
答案 1 :(得分:1)
我建议使用格式化程序。见here。在格式化程序中,您可以写:
visible="{path:'tableVariantAFModel>Visible', formatter: '.formatter.stringToBoolean'}"
在格式化程序中,您可以创建如下函数:
stringToBoolean: function(_stringBoolean){
(_stringBoolean === "true") ? return true : return false;
}
您必须确保在控制器中实例化格式化程序,或者您可以选择在控制器中选择一个函数。