我正在对网站上的某些页面进行评论。我建立了一个数据库来记录每条评论的时间戳。但是,当我让评论显示时,(当然)我会获得时间戳记。如何将其转换为可读格式?注释存储在JSONModel中。在View.xml中有某种方法可以做到吗?还是可以通过格式化JSON模型在控制器中做到这一点?

谢谢你的帮助!

JavaScript控制器

onFindComments: function(oEvent)
    {
        var carriersitesModel = sap.ui.getCore().getModel("glParamCarrierSitesModel").getData();

        var sPath = jQuery.sap.getModulePath("");
        var oComModel = new JSONModel(sPath);
        oComModel = RevisionDetailsService.onGetComments(carriersitesModel.periodNbr, carriersitesModel.carrierNbr, carriersitesModel.revisionNbr);

        this.setModel(oComModel, "commentModel");
        this.getView().byId("commentsList").setBusy(false);

    }


服务

onGetComments: function(periodNbr, carrierNbr, revisionNbr) {

        var oModel = new JSONModel();
        oModel.setDefaultBindingMode("TwoWay");
        var sUrl = UrlProvider.getUrl("GET_COMMENTS");

        var param = {
            "url": window.location.href,
            "messageKey": periodNbr + "-" + carrierNbr + "-" + revisionNbr
        };

        $.ajax({
            url: sUrl,
            type: "POST",
            data: JSON.stringify(param),
            async: true,
            contentType: "application/json",
            dataType: "json",
            success: function(res) {
                console.log(res);
                oModel.setData(res);
                console.log("GET COMMENTS SUCCESS");
            },
            error: function(error){
                console.log(error);
            }
        });
        return oModel;
    }


View.xml

<semantic:content>
        <FeedInput
        id="FeedInput"
        post="onComment"
        class="sapUiSmallMarginTopBottom" />
        <Table id="commentsList" width="auto" items="{commentModel>/returnData}" noDataText="{i18n>commentLineItemTableNoDataText}"
            busyIndicatorDelay="{detailView>/delay}" class="sapUiResponsiveMargin">
            <columns>
                <Column minScreenWidth="Phone" demandPopin="true" width="150px" style=" white-space:normal">
                    <Text text="{i18n>commentSenderColumnText}"/>
                </Column>
                <Column minScreenWidth="Phone" demandPopin="true" style="white-space:normal">
                    <Text text="{i18n>commentMessageColumnText}"/>
                </Column>
                <Column minScreenWidth="Phone" demandPopin="true" width="100px">
                    <Text text="{i18n>commentDateColumnText}"/>
                </Column>
            </columns>
            <items>
                <ColumnListItem>
                    <cells>
                        <Text text="{commentModel>createdBy}"/>
                        <Text text="{commentModel>message}"/>
                        <Text text="{commentModel>createdTime}"/>
                    </cells>
                </ColumnListItem>
            </items>
        </Table>
    </semantic:content>

最佳答案

ui5中有多种格式化日期(或任何其他类型)的方法:


programmatically
declaratively


在您的情况下,它将如下所示:

<Text text="{
    path: 'commentModel>createdTime',
    type: 'sap.ui.model.type.Date',
    formatOptions: {style: 'medium'}
}"/>


对于不同的参数用法,请阅读官方文档。

关于javascript - 将时间戳从JSON模型转换为可读格式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45462299/

10-11 23:56
查看更多