1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.
  2. Anuncie Aqui
    Anuncie aqui você Também: fdantas@4each.com.br

How to load darkmode.js file dynamically?

Discussão em 'Angular' iniciado por ckarakoc, Julho 8, 2025.

  1. ckarakoc

    ckarakoc Guest

    I have a toggle button inside src/app/user-list/user-list.html, namely:

    <div class="btn-group">
    <button class="btn btn-secondary btn-sm"
    type="button"
    data-bs-theme-value="dark"
    aria-pressed="false">
    Dark
    </button>
    <button class="btn btn-light btn-sm"
    type="button"
    data-bs-theme-value="light"
    aria-pressed="false">
    Light
    </button>
    </div>


    Loading it like this in src/index.html works:

    <!doctype html>
    <html lang="en">
    <head>...</head>
    <body>
    <app-root></app-root>
    <script src="assets/js/darkmodetoggle.js"></script>
    </body>
    </html>


    However, I would like to load it like this in src/app/user-list/user-list.html:

    export class UserList implements OnInit {
    constructor(private renderer: Renderer2) {
    }

    ngOnInit(): void {
    this.loadScript();
    }

    loadScript() {
    if (document.getElementById('darkmode-toggle-script')) {
    console.log('Script already loaded');
    return;
    }

    const script = this.renderer.createElement('script');
    script.id = 'darkmode-toggle-script';
    script.src = 'assets/js/darkmodetoggle.js';
    script.type = 'text/javascript';
    script.onload = () => console.log('Dark Mode Script loaded dynamically');
    script.onerror = () => console.error('Error loading Dark Mode Script');

    this.renderer.appendChild(document.body, script);
    }
    }


    It appears inside the html in the form:

    <script _ngcontent-ng-c1923262244="" id="darkmode-toggle-script" src="assets/js/darkmodetoggle.js" type="text/javascript"></script>


    But the button doesn't toggle anymore. Any idea why?

    Continue reading...

Compartilhe esta Página