/ / CoffeeScript Class y jQuery - jquery, ruby-on-rails-3, coffeescript

CoffeeScript Class y jQuery - jquery, ruby-on-rails-3, coffeescript

Tengo un archivo CoffeeScript en el que estoy escribiendo una clase para interacciones con un reproductor de audio, pero por alguna razón no puedo hacer que funcione bien dentro de otro archivo coffeeScript en mi aplicación Rails.

player.coffee:

window.Player = ->
constructor: (@player_id = "player") ->
jw = {
"flashplayer":"<%= asset_path("player.swf") %>"
"controlbar": "top"
"autostart": "false"
"width":"400"
"height":"49"
"playlist": "[]"
"skin":"<%= asset_path("awardfm.zip") %>"
"dock":"false"
"wmode":"transparent"
}
jwplayer(@player_id).setup(jw);

play: (track_data) ->
console.log track_data

player_interactions.coffee

$ ->
jw = window.Player "player" || {}
$(".play").click ->
jw.play("test")

Sigo recibiendo este error: Uncaught ReferenceError: Player is not defined

Ahora está trabajando con los ejemplos de código anteriores

Respuestas

16 para la respuesta № 1

Para hacer una clase globalmente direccionable, deberíasprefija el nombre de la clase con "@" (a menos que esté dentro de un cierre, en cuyo caso debe agregarle un prefijo "ventana", pero probablemente no desee hacerlo de todos modos).

player.coffee

class @Player
constructor: (@player = "player") ->
...

play: (track_data) ->
...

player_interactions.coffee

jw = new Player

2 para la respuesta № 2

Para acceder a una función desde un archivo de coffeescript en otro, adjunte la función en el objeto de la ventana de nivel superior y luego hágalo referencia en su archivo, window.MyClass