如何确定sap.m.Select中项目的绑定类型?

时间:2016-03-10 19:00:13

标签: javascript sapui5

使用sap.m.Input时,我可以像下面的示例中那样配置元素,以便设置绑定到Input的项目的类型:

<mvc:View>
     <Input value="{ 
         path:'/company/revenue', 
         type: 'sap.ui.model.type.Float'
     }"/>
</mvc:View>

这样,当我在&#39; / company / revenue&#39;中检索属性时,其类型将始终是JavaScript编号。但是,是否可以应用类似的&#34;打字&#34;一个sap.m.Select?该物业&#34; selectedKey&#34;在sap.m.Select内部总是返回一个JavaScript字符串,但是我想将它输入到与上面的sap.m.Input相同的数字。我该怎么做?提前谢谢!

1 个答案:

答案 0 :(得分:2)

是的,你可以这样做。它只是一个普通的属性绑定。

但要注意Select控件中项目的键必须与Float类型兼容。没有任何formatOptions的sap.ui.model.type.Float生成依赖于语言环境的字符串。所以在德国f.e.你得到一个,小数分隔符,而在美国则是.

一个好主意是使用聚合绑定来创建项目,并使用与select的selectedKey属性相同的类型配置项目的键。请参阅JSbin上的示例。

  <Select 
     selectedKey="{path:'/selectedKey',type: 'sap.ui.model.type.Float'}"
     items="{/items}">
    <c:ListItem 
      key="{path: 'key', type: 'sap.ui.model.type.Float'}" 
      text="{text}"/>
  </Select>
onInit:function(){
  var data = {
    selectedKey:3,
    items: [
      { key: -1, text: "Item 1" },
      { key: 1.234, text: "Item 2" },
      { key: 3, text: "Item 3" },
      { key: 1234, text: "Item 4" }
    ]
  };
  var model = new sap.ui.model.json.JSONModel(data);
  this.getView().setModel(model);
}