2012-11-12 4 views
0

저는 최근에 3.1에서 업그레이드 한 Rails 3.2.8 응용 프로그램을 가지고 있으며, 원래 application.js 코드를 모두 CoffeeScript로 변환했습니다. 그것의 대부분은 잘 작동합니다. 그러나, 나는 발견되지 않는 여러보기에서 호출하는 탐색 경로 기능이 있습니다. 지금, 난 그냥가 작동하고 있는지 확인하기 위해 경고를 던지고있어의 경우 : 파일의CoffeeScript 함수를 찾을 수 없습니다.

product_breadcrumb = (attr) -> 
    alert attr 

product_search.js.coffee을했다. 성공적으로 컴파일되어 다음과 같이 보입니다.

(function() { 
    var product_breadcrumb; 
    product_breadcrumb = function(attr) { 
    return alert(attr); 
    }; 
}).call(this); 

맞아요. 잘 모르겠습니다. 어쨌든 파이어 버그에서 나는 다음과 같이 나타납니다.

ReferenceError: product_breadcrumb is not defined 

이것은 Ajax 호출 이후입니다. 나는 왜 기능을 사용할 수 없을지 모르겠다. 결국 함수 정의 일뿐입니다. Ajax 호출에서 렌더링 된 HTML에서 여전히 사용할 수 있어야합니까? 왜 함수를 찾을 수 없는지 나는 이해할 수 없다.

+0

'product_breadcrumb' 또는'product_breadcrumb ("foo")'를 콘솔에 입력하면 값을 반환합니까? –

+0

또한 붙여 넣은 컴파일 된 JS에서 괄호가 일치하지 않는 것 같습니다. 중요하지 않을 수도 있습니다. }}에있는 괄호는 무엇입니까? –

+0

감사합니다. Jason, 잘라 내기 및 붙여 넣기 오류. 결정된. – AKWF

답변

2

전역 범위에 있어야하며 그런 식으로 호출해야합니다.

root = exports ? this 

을 예상대로 다음 다른 곳에서 호출 할 수있는 함수

root.product_breadcrumb 

이름 :

당신은 작성해야합니다.

훨씬 더 긴 설명은 this answer을 참조하십시오.

관련 문제