ng if和谷歌标签管理器脚本

ng-if and google tag manager script

本文关键字:管理器 脚本 标签 谷歌 if ng      更新时间:2023-09-26

我的问题是关于Google Tag Manager,并且只有在满足某些条件的情况下才运行脚本。

这是我的代码:

  <!-- Google Tag Manager -->
    <div ng-if="status === 'true'">
        <noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-****"
        height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
        <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
        new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
        j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
        '//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
        })(window,document,'script','dataLayer','*****');</script>
    </div>
    <!-- End Google Tag Manager -->

这段代码不起作用,但我想知道如果满足某些条件,如何使用ng-if来运行这段代码。或者我应该采取另一种方法?

我会检查status是否真的是字符串类型,因为您使用的是===。请尝试==use === true

您使用ng-if作为指令是正确的。

我假设脚本在加载Angular之前启动。当statustrue时,可能需要将脚本放入控制器或指令中并激发它。

如果您可以从Angular外部的Javascript访问status(例如全局变量),那么您可以接受TagManager脚本,如下所示:

<div>
    <script>
        if (status == true) {
            // Google Tag Manager IIFE goes here.
        }
    </script>
</div>