Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sapui5 formatOptions中将模型属性视为对象而不是字符串_Sapui5 - Fatal编程技术网

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控件的属性。