/ / कॉफीस्क्रिप्ट क्लास और jQuery - jquery, ruby-on-rails-3, coffeescript

कॉफीस्क्रिप्ट क्लास और jQuery - jquery, ruby-on-rails-3, coffeescript

मेरे पास एक कॉफीस्क्रिप्ट फ़ाइल है जिसमें मैं ऑडियो प्लेयर के साथ इंटरैक्शन के लिए कक्षा लिख ​​रहा हूं लेकिन किसी कारण से मैं इसे अपने रेल ऐप में किसी अन्य कॉफीस्क्रिप्ट फ़ाइल के अंदर अच्छी तरह से खेलने के लिए नहीं मिल सकता।

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")

मुझे यह त्रुटि मिल रही है: Uncaught ReferenceError: Player is not defined

अब यह उपरोक्त कोड नमूने के साथ काम कर रहा है

उत्तर:

उत्तर № 1 के लिए 16

विश्व स्तर पर संबोधित करने योग्य वर्ग बनाने के लिए आपको चाहिए"@" के साथ कक्षा का नाम उपसर्ग करें (जब तक कि आप एक बंदरगाह के भीतर न हों, जिस स्थिति में आपको इसे "विंडो" के साथ उपसर्ग करना होगा। लेकिन आप शायद वैसे भी ऐसा नहीं करना चाहते हैं)।

player.coffee

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

play: (track_data) ->
...

player_interactions.coffee

jw = new Player

जवाब के लिए 2 № 2

एक कॉफ़ीस्क्रिप्ट फ़ाइल से दूसरे में फ़ंक्शन तक पहुंचने के लिए, फ़ंक्शन को शीर्ष स्तर की विंडो ऑब्जेक्ट में संलग्न करें, फिर इसे अपनी फ़ाइल में संदर्भित करें, window.MyClass