2012-07-13 38 views
23

Trong file CoffeeScript tôi, clients.js.coffee,CoffeeScript chức năng được tạo ra trong ứng dụng/tài sản/javascript không tìm thấy

myFunction = (variable) -> 

Tôi tạo ra một hàm trong CoffeeScript trong app/assets/javascript. Nhưng khi tôi cố gắng gọi chức năng đó, giao diện điều khiển cho tôi thấy một lỗi nói rằng chức năng không tìm thấy.

tôi kiểm tra nguồn gốc của trang và nó cho thấy rằng kịch bản được nạp:

<script src="/assets/clients.js?body=1" type="text/javascript"></script> 

Đây là những gì đã được tìm thấy bên trong nguồn kịch bản:

(function() { 
    var myFunction; 

    myFunction = function(variable) {} 
}).call(this); 

Bất kỳ ý tưởng gì tôi thiếu ? Tôi nên làm gì để gọi hàm?

+0

Bạn đã tạo một hàm trong phạm vi chức năng ẩn danh. Vì vậy, nó không thể nhìn thấy bên ngoài – zerkms

+0

có thể trùng lặp của [Tại sao điều này xảy ra với CoffeeScript của tôi?] (Http://stackoverflow.com/questions/6481986/why-is-this-happening-to-my-coffeescript) –

+0

Làm cách nào để giải quyết nó trong đường ray? Cảm ơn – revolver

Trả lời

53

Để làm cho nó truy cập từ bên ngoài, tất cả các bạn cần làm là thêm một '@' ở phía trước. Điều này sẽ đính kèm chức năng vào đối tượng cửa sổ.

@myFunction = (variable) -> 
+1

đã tiết kiệm thời gian của tôi. Cảm ơn – Uzair

5

Bind nó vào cửa sổ

myFunction = (variable) -> 
    alert('zzzzzzzz') 

window.myFunction = myFunction 
+0

Ngoài ra, đây là một màn hình có thể hữu ích - http://house9.blogspot.com/2011/05/rails-31-javascript-execution.html – house9

Các vấn đề liên quan