[RUBY-ON-RAILS] 레일 3.1 및 커피 스크립트에 오류 "변수를 찾을 수 없습니다"
RUBY-ON-RAILS레일 3.1 및 커피 스크립트에 오류 "변수를 찾을 수 없습니다"
난 내 응용 프로그램 전체에서 사용하는 함수가 포함되어 내 application.js 파일을 참조 내 응용 프로그램에서 전망이 있습니다.
난 그냥 3.1의 가장자리 버전을 사용 한 후 레일 3.1 릴리스 후보를 설치했습니다. 나는 RC 내가 어떤 문제가 아니었지만 지금은이 오류를 받고 있어요 설치까지 :
indicator_tag는 application.js에 정의 된 함수 I입니다. 자바 스크립트 파일의 유일한 차이 나는 통지는 이제 내 모든 기능을 래핑하는 것입니다 :
(function() { ... }).call(this);
나는 이것이 변수 범위 지정에 대한 이해? 그러나 그 변수를 사용하는 내 페이지를 방지 할 수 있을까? 누군가가 요청하기 전에, 나는 확실히 자바 스크립트 경로 내 포함 태그 정확했습니다.
해결법
-
==============================
1.기본적으로 모든 커피 스크립트 파일은 폐쇄 아래로 컴파일됩니다. 당신은 할 수 없습니다 당신이 전역 변수로 내보낼하지 않는 다른 파일의 기능과 상호 작용합니다. 이 같은 일을 권하고 싶습니다 :
기본적으로 모든 커피 스크립트 파일은 폐쇄 아래로 컴파일됩니다. 당신은 할 수 없습니다 당신이 전역 변수로 내보낼하지 않는 다른 파일의 기능과 상호 작용합니다. 이 같은 일을 권하고 싶습니다 :
모든 커피 스크립트 파일의 위에, 같은 줄을 추가
window.Application ||= {}
이것은 항상 세계라는 이름의 응용 프로그램 존재가 있다는 보장합니다.
다른 파일에서 호출 할 필요가해야하는 모든 기능을 위해 지금, 그들을 정의
Application.indicator_tag = (el) -> ...
및 사용하여 전화
Application.indicator_tag(params)
-
==============================
2.Dogbert의 솔루션은 매우 정교한 JS의 백 엔드가 있다면 갈 수있는 좋은 방법입니다. 당신은 단지 당신이 최선을 다하고 기능의 소수있는 경우에는 훨씬 더 간단한 해결책이있다. 그냥 다음과 같이 윈도우 객체에 직접 추가 :
Dogbert의 솔루션은 매우 정교한 JS의 백 엔드가 있다면 갈 수있는 좋은 방법입니다. 당신은 단지 당신이 최선을 다하고 기능의 소수있는 경우에는 훨씬 더 간단한 해결책이있다. 그냥 다음과 같이 윈도우 객체에 직접 추가 :
window.indicator_tag = (el) -> ...
그럼 당신은 다른 객체를 마무리 할 필요없이 어디서나 당신의 기능을 사용할 수 있습니다.
from https://stackoverflow.com/questions/6089992/cant-find-variable-error-with-rails-3-1-and-coffeescript by cc-by-sa and MIT license
'RUBY-ON-RAILS' 카테고리의 다른 글
[RUBY-ON-RAILS] Heroku가 - 자식 푸시 Heroku가 마스터를 실행할 수 없습니다 [중복] (0) | 2020.02.16 |
---|---|
[RUBY-ON-RAILS] 3 레일 - 포함으로 선택? (0) | 2020.02.16 |
[RUBY-ON-RAILS] 다른 플랫폼 만들기 들러 사용 다른 보석 (0) | 2020.02.16 |
[RUBY-ON-RAILS] 동적 레일에 바인딩 원시 업데이트 SQL을 실행하는 방법 (0) | 2020.02.16 |
[RUBY-ON-RAILS] 아약스를 통해 플래시 통지를 레일 (0) | 2020.02.16 |