google-apps-script - 在对象中存储一个数组并将其传递给 Code.gs 函数。给出参考错误
问题描述
我正在尝试做的事情:
1- 当有人点击按钮(class = btn)时,它会检索在数组中选择的选项的值。请参阅 HTML 代码。
2-我将数组存储到一个对象中 - facebookAccountData
3- 通过运行 google.script.run 命令将数据传递到 Code.gs 函数 makeRequest。
当我尝试直接从脚本编辑器运行 makeRequest 时,我得到一个 ReferenceError。我无法在 makeRequest 函数中执行 console.log。
HTML
<div class="form-group">
<label for="fieldsData">Select Fields:</label>
<select id="fieldsData">
<? var data = ACCOUNTDATA.adAccountUIFields ?>
<? if (data.length > 0) { ?>
<? for (i=0; i<data.length; i++) { ?>
<option value="<?= data[i] ?>"><?= data[i] ?></option>
<? } ?>
<? } ?>
</select>
</div>
<div class="form-group">
<button id="btn">Run it</button>
</div>
</div>
Javascript HTML
<script>
document.getElementById("btn").addEventListener("click",retrieveFacebookData);
function retrieveFacebookData () {
var facebookAccountData = {};
facebookAccountData.facebookFields = $('#fieldsData').val(); // [cpc,impressions,spend]
google.script.run.makeRequest(facebookAccountData);
}
</script>
代码.gs
var ACCOUNTDATA = {
adAccountUIFields : ['cpc','impressions','spend']}
function makeRequest(facebookAccountData) {
facebookAccountData = {facebookFields: [cpc,impressions,spend]};
console.log(facebookAccountData.facebookFields);
}
解决方案
排队 :
facebookAccountData = {facebookFields: [cpc,impressions,spend]};
cpc,impressions and spend
没有定义。
为什么你不这样做:
const facebookAccountData = {facebookFields: adAccountUIFields};
console.log(facebookAccountData.facebookFields);
我建议您使用use strict
可以帮助您避免很多错误语法的模式
推荐阅读
- javascript - Android webview 中的 JavaScript 注入
- spring - 在条件 Bean 上使用 @Value
- typescript - 打字稿检查对象是否匹配类型
- java - 阻止 Spring Boot 应用程序关闭,直到所有当前请求都完成
- angular - Angular 找不到“object”类型的不同支持对象“[object Object]”。NgFor 仅支持绑定到 Iterables,例如 Arrays
- peoplesoft - PeopleSoft App Engine 程序流程如何发生
- mathematical-optimization - 有没有办法在 LpSolve 中添加像 x(y+z)<0 这样的约束?
- git - git相同的文件,该文件中的不同内容git合并时会发生什么
- java - 使用 Java Builder 设置 eclipse-error
- linux - 如何在 Ubuntu 中启用 CONFIG_RT_GROUP_SCHED 使其成为 RT