无法将广告放入我的 Angular Dart 应用程序

Cannot put ads into my Angular Dart app

我正在尝试将 google AdSense 广告放入我的 Angular Dart 应用程序中。 但是,如果我将它粘贴到我的组件之一的 html 中,它不会显示任何内容。

dashboard_component.html:

<head>
    <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
    <script>
        (adsbygoogle = window.adsbygoogle || []).push({
        google_ad_client: "ca-pub-7364276574790830",
        enable_page_level_ads: true
        });
    </script>
</head>

出于安全原因,Angular 清除了添加到组件模板的脚本标签。

您需要将脚本标签添加到 index.html

您还可以在运行时使用命令式 Dart 代码添加脚本标签,例如在 Angular 组件的生命周期回调中,例如我在 script tag in angular2 template / hook when template dom is loaded 中解释的 TypeScript(应该很简单翻译成 Dart。最近的 Angular Dart 版本不再有 nativeElement)。

在类似的情况下,我在脚本标签中添加了一个唯一的属性,然后使用querySelector检查这样的脚本标签是否已经存在,以避免多次添加它。

脚本标签还有一个 load 事件通知脚本何时加载,因此您的代码可以在调用仅在脚本加载后可用的函数之前等待该事件。