在UI5表单输入字段

时间:2016-09-17 06:39:30

标签: javascript odata sapui5

我试图在UI5表单输入字段中显示edm.time类型的odata属性 。 查看代码

      <Input id="id1" placeholder="Enter value" value="{ path: 'START_TIME', mode: 'sap.ui.model.BindingMode.OneWay' }" width="500%" editable="false"/>

START_TIME是实体的属性

控制器代码 -

    onInit: function () {
         var model= new sap.ui.model.odata.v2.ODataModel("<xsodata url>");
         model.setDefaultBindingMode(sap.ui.model.BindingMode.TwoWay);
         this.getView().setModel(model);
         var oRouter = sap.ui.core.UIComponent.getRouterFor(this);
         oRouter.getRoute("<pattern_name>").attachMatched(this._onObjectMatched, this);

    },
    _onObjectMatched: function (oEvent) {
        var oArgs, oView;
        oArgs = oEvent.getParameter("arguments");
        oView = this.getView();
        oView.bindElement({
             path : "/" + oArgs.objPath
        });

     }

Here object path is as follows-
    /Entityname/<id of a partcular item in that entity>

当我试图在视图中显示开始时间属性时,它返回对象对象。我需要字符串格式的时间。我已经在表格中使用了格式化程序并且它工作正常。但是聚合items绑定是不同的,因为它是一个表控件。我需要UI5表单中输入字段中的值 请帮忙

1 个答案:

答案 0 :(得分:1)

binding path syntax应为

/EntitySet('id')    //In case of a string id
/EntitySet(id)      //In case of a number id

也不支持开头的双//。请检查是否需要"/" +

OData Edm.Time可以用sap.ui.model.odata.type.Time类型格式化:

 <Input id="id1" placeholder="Enter value" value="{ path: 'START_TIME', mode: 'sap.ui.model.BindingMode.OneWay', type: 'sap.ui.model.odata.type.Time' }" width="500%" editable="false"/>

您可以提供更多format options来自定义输出:

 <Input id="id1" placeholder="Enter value" value="{ path: 'START_TIME', mode: 'sap.ui.model.BindingMode.OneWay', type: 'sap.ui.model.odata.type.Time', formatOptions: {style: 'short'} }" width="500%" editable="false"/>

类型(与格式化程序相比)支持输入和输出转换。因此,它们可用于双向绑定输入,无需额外编码。