ruby-on-rails-3scopecoffeescripticed-coffeescriptcoffeescript-resources

Why are my coffeescript functions not available from my HTML code ?


I am using rails-backbone, coffeescript gems in my rails 3.2.6 project.

square = (x) -> x * x alert square(5)

this is the blog.js.coffee script file it produces:

(function() { var square; square = function(x) {return x * x;}; alert(square(5));

I need to call the square() method in an other view file.

How can I call that? Is there any thing wrong I am doing?


Solution

  • All your code in Coffeescript will be inside a self-invoking anonymous function.

    To call it outside a file, just write:

    window.square = (x) -> x * x 
    

    alert(square(5)) in an other function

    The best you can do to not overuse window is a App object that will contain all your variables.

    window.App={}
    window.App.square=  (x) -> x * x 
    

    and then alert(App.square(5))