터보 링크를 사용하는 페이지에 ACE 편집기를 구현하려고합니다. 그러나 편집기는 해당 페이지를 직접 호출하거나 페이지를 다시로드 할 때만 작동합니다. 편집기로 이동하면 필요한 모든 단계를 실행하지 않아도 편집기가 작동합니다.Turbolinks 외부 자바 스크립트 (여기 : ACE 편집기)
현재 통합 :
이<script src="//cdnjs.cloudflare.com/ajax/libs/require.js/2.1.8/require.js" type="text/javascript" charset="utf-8"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/ace/1.1.01/ace.js" type="text/javascript" charset="utf-8"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/ace/1.1.01/mode-html.js" type="text/javascript" charset="utf-8"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/ace/1.1.01/mode-css.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript" charset="utf-8">
function initialize_editor() {
var editor = ace.edit("html-editor");
editor.setTheme("ace/theme/clouds");
editor.getSession().setMode("ace/mode/html");
editor.setValue($('#template_html').val());
$('form').on('submit', function(event) {
$('#template_html').val(editor.getValue());
});
}
$(document).ready(initialize_editor);
$(document).on('page:load', initialize_editor);
</script>
이 페이지를 떠난 후 Uncaught TypeError: Cannot read property 'ace/ace' of undefined.
을 던졌습니다의 JS 페이지에 붙어있는 것 같다, 모든 탐색 부하에, 나는 Uncaught ReferenceError: ace is not defined
를 얻을.
ACE 편집기 (또는 다른 외부 라이브러리)를 여기에 포함시키는 적절한 방법은 무엇입니까? 스프로킷을 통해로드하는 것은 작동하지 않으며,이를 vendor/javascripts/
에 복사하고 스프로킷 매니페스트에서 요구할 때 제대로 실행하려면 심각한 문제가 있습니다.
터보 링크에 대한 깨달음과 적절한 방법은 무엇입니까?
Turbolinks는 URL로 탐색 할 때만 페이지 콘텐츠를 다시로드합니다. 즉, 자바 스크립트가로드/다시로드되지 않음을 의미합니다.이 보석을 사용해보십시오. [jquery.turbolinks] (https://github.com/kossnocorp/jquery.turbolinks), it 문제를 해결할 수 있습니다. –