Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 4 Turbolinks外部javascript(此处:ACE编辑器)_Ruby On Rails 4_Ace Editor_Turbolinks - Fatal编程技术网

Ruby on rails 4 Turbolinks外部javascript(此处:ACE编辑器)

Ruby on rails 4 Turbolinks外部javascript(此处:ACE编辑器),ruby-on-rails-4,ace-editor,turbolinks,Ruby On Rails 4,Ace Editor,Turbolinks,我正在尝试在使用TurboLink的页面中实现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.clou

我正在尝试在使用TurboLink的页面中实现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>

函数初始化_编辑器(){
var editor=ace.edit(“html编辑器”);
编辑器.setTheme(“ace/theme/clouds”);
editor.getSession().setMode(“ace/mode/html”);
editor.setValue($('#template_html').val();
$('form')。在('submit',函数(事件){
$('#template_html').val(editor.getValue());
});
}
$(文档).ready(初始化编辑器);
$(文档).on('page:load',初始化编辑器);
这会抛出一个
未捕获类型错误:无法读取未定义的属性“ace/ace”。
离开页面后,js似乎卡在页面上,每次导航加载时,我都会收到一个
未捕获引用错误:未定义ace

在这里包含ACE编辑器(或其他外部库)的正确方式是什么?通过链轮加载它们将不起作用,当将它们复制到
vendor/javascripts/
并要求它们出现在链轮清单中时,我很难让它正常运行


关于TurboLink有什么启示吗

我可以通过获取所需的js文件并将它们放入vendor/javascript路径来解决这个问题。对于空格和制表符的特殊字符(其他人也在此处报告)的初始问题,可以通过将文件显式存储为utf8和BOM来解决。

TurboLink仅在通过url导航时才会重新加载页面内容,这意味着不会加载/重新加载javascript,请尝试此gem,这可能会解决你的问题。我和Ace和TurboLink有问题。我不想把它放到我的资产管道中,因为文件很大,我只在管理界面上使用编辑器。强制应用程序的所有用户下载编辑器似乎不公平。