Javascript 如何使用动态 VAR 创建动态函数

How to use dynamic VAR to create dynamic function in Javascript

抱歉,如果这以任何方式重复,我在这里看到了一些类似的问题,但我很难在这里应用任何解决方案来解决我的问题。完全公开,我是一名营销人员而不是开发人员,而且在涉及任何类型的编码时,我通常会非常重视它

我正在使用 Hubspot 构建一个页面,其中包含从 for 循环生成的 table 数据。对于每个 table 行,我希望包含一个按钮,用户可以单击该按钮来触发将更新该行中某些数据的网络钩子。

<a onclick="postDataToWebhook()"...

我正在尝试找出如何动态地命名函数和 onclick 事件,也许使用数据行中的 ID。我正在使用该 ID {{row.id}} 使每一行的 VAR 动态化,但尽管我摆弄了几个小时,我还是无法找到一种方法来创建一个可以通过单击相应事件随时调用的唯一函数-通话按钮。

函数如下:

function postDataToWebhook(){
  //get the values needed from the passed in json object
  var llid{{row.id}}="{{row.name}}";
  var accid{{row.id}}="{{row.account_id}}";
  //url to your webhook
  var webHookUrl="xxx";
  
  var oReq = new XMLHttpRequest();
  var myJSONStr = payload={
      "text": "Instructed landlord",
      "attachments":[
        {
          "landlord_association_id": llid{{row.id}},
          "account_id": accid{{row.id}},
        }
    ]

  };

  
//register method called after data has been sent method is executed
  oReq.addEventListener("load", reqListener);
  oReq.open("POST", webHookUrl,true);
  oReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  oReq.send(JSON.stringify(myJSONStr));
}

如果有人能给我指出正确的方向,我将不胜感激 - 谢谢!

您只需将行数据作为参数传递。您不需要在函数中创建唯一变量,因为它有自己的作用域。

<a onclick="postDataToWebhook(row)">
function postDataToWebhook(row){
  let { name, account_id } = row;
  let webHookUrl="xxx";
  let oReq = new XMLHttpRequest();
  let myJSONStr = {
      "text": "Instructed landlord",
      "attachments":[
        {
          "landlord_association_id": name,
          account_id,
        }
    ]

  };

  
//register method called after data has been sent method is executed
  oReq.addEventListener("load", reqListener);
  oReq.open("POST", webHookUrl,true);
  oReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  oReq.send(JSON.stringify(myJSONStr));
}

我只修改了变量部分,没有检查你函数的其他部分。