語境我正在創(chuàng)建一個演示頁面,該頁面顯示UI5的一些直接功能。該頁面包括兩個主要頁面:在第一頁上,有一個可以創(chuàng)建,刪除和更新的運(yùn)營商列表。這些運(yùn)營商有一個ID(Carrid)。如果單擊某個承運(yùn)商,他們將被轉(zhuǎn)到第二頁,表格中將顯示所選承運(yùn)方的所有航班(其中包含有關(guān)航班的一些信息)。該表如下所示:<Table id="detailTable" inset="false" class="sapUiResponsiveMargin"> <columns> <Column> <Text text="ID" /> </Column> <Column> <Text text="Flightnumber" /> </Column> <Column> <Text text="Starts in" /> </Column> <Column> <Text text="Departs at" /> </Column> <Column> <Text text="Lands in" /> </Column> <Column> <Text text="Lands at" /> </Column> </columns></Table>問題如果可以不先處理就可以顯示數(shù)據(jù),則代碼可以正常工作。但字段{Deptime}和{Arrtime}有型Edm.Time,我需要先轉(zhuǎn)換,才能在人類可讀的形式來顯示。我可以通過以下代碼來實(shí)現(xiàn)這一點(diǎn)(我知道,這不是最有效的方法,但是我仍在學(xué)習(xí)中。因此,如果有任何改進(jìn),請隨時發(fā)布):pageTable.addEventDelegate({ onAfterRendering: function() { var mTable = this.getView("FilterBarSimple").byId("detailTable"); var mModel = mTable.getModel(); var aItems = mTable.getItems(); // ----- TIME CONVERSION ---- var arrayTime = []; for (var iTime = 0; iTime < aItems.length; iTime++) { var iAdded = mModel.getProperty("Deptime", aItems[iTime].getBindingContext()); arrayTime.push(iAdded); } var timeFormat = sap.ui.core.format.DateFormat.getTimeInstance({ pattern: "kk:mm:ss" }); var tz = new Date(0).getTimezoneOffset() * 60 * 1000; var arrayTimeClean = []; $.each(arrayTime, function(ii, ee) { var timeStr = timeFormat.format(new Date(ee.ms + tz)); arrayTimeClean.push(timeStr); }); }});這將生成正確的輸出:Image_Of_Converted_Output但是我無法再次將此操縱數(shù)據(jù)正確綁定到表中。我已經(jīng)嘗試過使用該OData.read()函數(shù)和其他一些不太實(shí)用的方法,但是我從未成功過,并且在相當(dāng)長的一段時間里一直困擾著這個問題。如果有人有想法或建議,如果您讓我知道,我將不勝感激。
如何從OData服務(wù)正確地將日期/時間添加到UI?
慕田峪7331174
2019-10-12 14:05:36