0

如何将函数结果从文件发送到 HTML 模板,通过以下努力我收到一个对象对象错误消息

HTML 页面中的错误是:[object Object]、[object Object]、[object Object]、[object Object]、[object Object]、[object Object]、[object Object]、[object Object]、[object Object]

function doGet() {
 var ss = SpreadsheetApp.openById("IIIIIII");
    var sheet = ss.getSheetByName('Sheet3')
    var values = sheet.getDataRange().getValues();
    var msg = [];

    var MyDate =  e.parameter.time;// 7/27/2020
    var d = new Date(MyDate);
    var n = d.getTime();
    for (var i = 0; i < values.length; i++) {
        if (new Date(values[i][0]).getTime() === n) {
            msg.push(values[i][1])
        }
    }

const ts = ['10:00-11:00', '11:00-12:00', '12:00-13:00', '13:00-14:00', '14:00-15:00', '15:00-16:00', '16:00-17:00', '17:00-18:00', '18:00-19:00'],
        booked3 = msg,
        avail = (ts, booked) =>
        ts.map(item => {
            const [start, end] = item.split('-'),
                isBooked = !booked
                .map(item => item.split('-'))
                .every(([bookedStart, bookedEnd]) => bookedStart >= end || bookedEnd <= start)
            return {
                slot: `${start}-${end}`,
                isBooked
            }
        })
console.log(avail(ts, booked3))
      
var template
var template =HtmlService.createTemplateFromFile('index'); 
     template.name= e.parameter.time;
     template.idata=avail(ts,booked3); // this result is showing in html page 
     var pageData= template.evaluate()
    .setTitle('System') 
    .setSandboxMode(HtmlService.SandboxMode.IFRAME) 
    .addMetaTag('viewport', 'width=device-width, initial-scale=1')
    .setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL) 
     return pageData;
}
<div class="text-white display-6">idata:<?= idata; ?></div>

谷歌表格

4

1 回答 1

1

您的代码将一组对象传递给模板 HTML。

代替

template.idata=avail(ts,booked3); 

经过

template.idata=JSON.stringify(avail(ts,booked3)); 

如果您想显着改善演示文稿,那么您的代码应该将结果转换avail(ts,booked3)为 HTML。

于 2020-08-06T15:49:04.473 回答