如何在自定义 HTML 标签中引用整个数据层对象?

How to reference the entire dataLayer object in a custom HTML tag?

我正在将 redux 调度事件推送到数据层。我向对象附加了一些信息,它们最终变成了相当复杂的对象。我有一个自定义 html 标记,当 dataLayer 对象上的某些属性为某些值时会触发该标记。自定义标记调用 window.publish() 函数,该函数将 JSON 对象发布到 ELK 堆栈。 window.publish() 函数将对象作为参数: window.publish({"key":"value"}) 。

我想要做的是为被触发的标签发布整个数据层对象。我知道我可以使用 {{}} 符号引用对象上的单个变量,但我如何引用整个对象?目前我正在这样做:

<script>
window.publish(
  dataLayer[
   dataLayer.findIndex(function(ev){return ev['gtm.uniqueEventId'] == . 
     {{UniqueEventId}}})
  ]);
 </script>

其中 {{UniqueEventId}} 是我设置的自定义变量。

有更好的方法吗?

我在问题中使用的解决方案就是答案。它来自这里:https://productforums.google.com/forum/?utm_medium=email&utm_source=footer#!msg/tag-manager/cskdJPfJF1k/7L52mbwkAQAJ