Ruby On Rails에 Webpacker가 도입되면서 JavaScript 함수를 사용하는 방법을 찾을 수 없습니다.
app-globals.js
테스트 할 함수 가있는 파일이 있습니다 .
function alerts() {
alert("TEST")
}
그런 다음 내보기 중 하나에서 사용하고 싶습니다.
<% = button_tag 'Button', type: 'button', onClick: 'alerts ()'%>
하지만 버튼을 누르면이 오류가 브라우저 콘솔에 표시됩니다.
ReferenceError: alerts is not defined
나는 위치 app-globals.js
에 파일을 "app/javascript"
과에서 "app/ javascript/packs/application.js"
I ( "앱 전역")를 필요로 배치했다.
app-globals.js를 .js 파일로 이동 "app/javascript/packs"
하고에서 require ( "app-globals")를 제거했습니다 application.js
.
두 경우 모두 오류가 계속 나타납니다.
하지만 해결 방법이 있습니다. 다음을 수행 할 수 있습니다.
함수 서명을 다음에서 변경하십시오.
function myFunction() { ... }
에:
window.myFunction = function() { ... }
따라서 코드에서 다음과 같이 할 수 있습니다.
app/javascript/packs/app-globals.js
window.alerts = function() {
alert ("TEST");
}
그런 다음이 파일을 application.js에 요구합니다.
app/javascript/packs/application.js
require("@rails/ujs").start()
require("turbolinks").start()
require("@rails/activestorage").start()
require("channels")
require("jquery")
import $ from 'jquery'
window.jQuery = $;
window.$ = $;
require("packs/app-globals") ## require your file
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다