gpt4 book ai didi

javascript - 将谷歌脚本对象传递给 html 模板

转载 作者:太空宇宙 更新时间:2023-11-04 16:23:58 25 4
gpt4 key购买 nike

我使用 HtmlService 在谷歌脚本中开发独立的网络应用程序。这是代码的一部分:

脚本:

function doGet() {
getLabelsLists();
return HtmlService
.createTemplateFromFile('index')
.evaluate().setSandboxMode(HtmlServi‌​ce.SandboxMode.NATIVE);
}

function getEmails() {
var query = ...;
var threads = GmailApp.search (query);
return threads;
}

index.html:

<? var data = getEmails(); ?>
<table>
<? for (var i = 0; i < data.length; i++) {
var message = data[i].getMessages()[0];
?>
<tr onclick= click(<?= message.getId() ?>)>
<td><?= message.getSubject() ?></td>
</tr>
<? } ?>
</table>

我想做的是在页面加载时仅显示如下所示的按钮,并在点击调用函数时显示带有结果的表格。

 <input type="button" onclick="google.script.run.getEmails()" />

关于如何将 gmail 线程数组从 getEmails() 函数传递到 View 并动态创建表的任何想法?

最佳答案

您不能传递此类对象(带有函数和自定义原型(prototype)),只能传递“简单”对象(由字符串、数字、 bool 值和数组或包含这些的对象组成),如 the documentation 中所述.因此,您将构建一个具有传递它所需的值的对象。以您仅获取线程中第一条消息的 ID 和主题的用法为例,它是如何完成的:

function getEmails() {
var query = "...";
return GmailApp.search(query).map(function(thread) {
var msg = thread.getMessages()[0];
return {id:msg.getId(), subject:msg.getSubject()};
}
}

然后,要“读取”这些值,您应该直接访问 id,而不是调用 getId()subject,而是getSubject() 的。

关于javascript - 将谷歌脚本对象传递给 html 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26978483/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com