Sapui5 formatOptions中将模型属性视为对象而不是字符串
我有一个包含标签和输入组件的片段。其值大多是静态设置的,并按预期工作:Sapui5 formatOptions中将模型属性视为对象而不是字符串,sapui5,Sapui5,我有一个包含标签和输入组件的片段。其值大多是静态设置的,并按预期工作: 现在,我在控制器中创建了一个模型,其中包含要在输入组件中使用的值:一个值(customer)要添加到customer name字段中,还有两个属性(groupingSeparator和decimalSeparator)用于格式化货币: var json={ “groupingSeparator”:“, “小数分隔符”:“,”, “客户”:“约翰·韦恩”, }; var model=新的JSONModel(json); t
现在,我在控制器中创建了一个模型,其中包含要在输入组件中使用的值:一个值(customer)要添加到customer name字段中,还有两个属性(groupingSeparator
和decimalSeparator
)用于格式化货币:
var json={
“groupingSeparator”:“,
“小数分隔符”:“,”,
“客户”:“约翰·韦恩”,
};
var model=新的JSONModel(json);
this.getView().setModel(model,“P02_model”);
创建此模型后,我修改片段以使用以下值:
问题是,当加载页面时,名称John Wayne
正确映射到关联的输入中,但包含货币的输入将具有
112[对象]323[对象]2
而不是112323,2
与groupingSeparator
和decimalSeparator
相关联的两个字符串值被视为对象。为什么?
为什么?
这是因为绑定信息对象不是ManagedObject,而是不支持绑定功能的简单对象。你必须用JS来做
onInit:function(){
// ...
const model=this.getView().getModel(“P02_model”);
这个.byId(“myInput”).bindValue({
部分:[
“P02\U车型>/VehicleRossPrice”,
“valuta>/convert”
],
类型:this.createCurrencyType()
});
},
onModelDataChanged:function(){
this.byId(“myInput”).getBinding(“value”).setType(this.createCurrencyType());
},
createCurrencyType:函数(){
返回新的CurrencyType({//required“sap/ui/model/type/Currency”
groupingSeparator:model.getProperty(“/groupingSeparator”),
小数分隔符:model.getProperty(“/decimalSeparator”)
});
},
我认为您不能使用绑定为groupingSeparator设置值。它必须是一个静态值。只能绑定UI5控件的属性。