2012-10-23 3 views
1

을, 커피 스크립트를 네임 스페이스하는 방법, 내가보기에이 같은 일을 할 수 있도록하려면 :는 레일 프로젝트에서 나는 커피 스크립트를 사용하고있는 내 레일 프로젝트에서

f.text_area :content, :size => "77x4", :oninput => 'Helpers.expandTextarea(300)' 

이것을 커피 스크립트 함수를 호출 할 것 필요한 경우 텍스트 영역을 확장합니다. 내 문제는 제대로 작동하도록 coffeescript의 네임 스페이스를 올바르게 표시하지 못하는 것입니다. 나는 이렇게하려고했다.

# site.js.coffee 
Helpers = 
    expandTextarea: -> 
    alert "function found!" 

이것은 효과가 없다. 브라우저 콘솔에서 Helpers으로 전화를 시도하면 undefined 오류가 발생합니다. 내 질문은 다음과 같습니다.

원하는 네임 스페이스를 얻기 위해 site.js.coffee에서 어떤 코드를 사용합니까?

답변

2

수동으로 전역 네임 스페이스에 Helpers을 넣을 수 :

window.Helpers = 
    expandTextarea: -> 
    alert "function found!" 

는 그런 다음 Helpers.expandTextarea(300) 어디서든 당신이 원하는 말을 할 수 있어야한다. 물론 모든 페이지에 site.js.coffee이 포함되어 있다고 가정합니다.

커피 스크립트 파일은 기본적으로 기능에 싸여있다 :

(function() { /* compiled CoffeeScript goes here */ })(); 

글로벌 네임 스페이스를 오염시키지 마십시오. CoffeeScript 컴파일러에 옵션을 제공하여 이와 같이 랩핑하지 않아도되지만, 글로벌 일을 명시 적으로 window에 넣는 것이 좋습니다.

+0

그게 전부입니다. 고마워. – ErwinM

관련 문제