首页 > 解决方案 > 在对象中存储一个数组并将其传递给 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);


}

标签: google-apps-script

解决方案


排队 :

facebookAccountData = {facebookFields: [cpc,impressions,spend]};

cpc,impressions and spend没有定义。

为什么你不这样做:

const facebookAccountData = {facebookFields: adAccountUIFields};
console.log(facebookAccountData.facebookFields);

我建议您使用use strict可以帮助您避免很多错误语法的模式


推荐阅读