javascripthtmlcoffeescriptcraftyjs

How can I call a concrete Coffeecript function from html


I have an app that uses HTML, and Coffeescript in the frontend. I recently made it possible to change the language thanks to i18next.

Now I have some buttons that change my window.userLang to the different languages, but the user has to refresh some elements of the app to see it translated.

My problem comes because I need the translations made without refreshing the HTML.

In the app, I use Craftyjs, so what I need to know is how can (if possible) from HTML file, call a function that it's defined in Craftyjs.

The function I want to call is: Crafty.scene("main").

Thanks all!


Solution

  • Create a global name space defined above where your scripts are included. Then in your javascript you can define the functions you need as fields on that namespace.

    <script>
      var MySweetWebApp = {};
    </script>
    <script src="..."></script>
    

    ... Inside JS file ....

    MySweetWebApp.Crafty = { ... }
    

    ... From Anywhere ...

    MySweetWebApp.Crafty.scene('main');