如何将文件内容加载到ace编辑器

时间:2019-07-06 21:23:02

标签: javascript django python-3.x ace-editor

我建立了一个django网站,允许用户上传.txt文件,我想通过集成ACE编辑器(或任何其他编辑器建议?)来添加编辑功能。

我有一个上传文件的列表,并且我希望有一个编辑按钮重定向到编辑器页面,并在编辑器页面中加载文件内容。

我想知道如何将文件内容加载到ace编辑器?

我找到了一些有关上传文件并将其直接显示在编辑器中的代码。(https://jsfiddle.net/xlaptop2001/y70gL3kv)。但是,我想要重定向到新的编辑器页面,并通过单击“编辑”加载已上传的文件。按钮。

{% extends 'base.html' %}

{% block content %}
<h1>Mechanism {{ object.id }} details</h1>
<style>
  ul.b {
  list-style-type: square;
  line-height:200%;
}
</style>

<ul class="b">
        <li>
          {% if object.ck_mechanism_file %}
            <a href="{{ object.ck_mechanism_file.url }}">{{ object.ck_mechanism_file }}</a>
            <a href="/ace/">
              <button type="button" class="btn btn-primary btn-sm">Edit</button>
            </a>
            <a href="delete_mechanism">
              <button type="button" class="btn btn-danger btn-sm">Delete</button>
            </a>
          {% else %}
            <span class="text-muted">No Mechanism File Attached</span>
          {% endif %} 
        </li>
        <li>
          {% if object.ck_thermo_file %}
          <a href="{{ object.ck_thermo_file.url }}">{{ object.ck_thermo_file }}</a>
          <a href="/ace/">
            <button type="button" class="btn btn-primary btn-sm">Edit</button>
          </a>
          <a href="delete_thermo">
            <button type="button" class="btn btn-danger btn-sm">Delete</button>
          </a>
          {% else %}
            <span class="text-muted">No Thermo File Attached</span>
          {% endif %}  
        </li>
        <li>
          {% if object.ck_transport_file %}
          <a href="{{ object.ck_transport_file.url }}">{{ object.ck_transport_file }}</a>
          <a href="/ace/">
            <button type="button" class="btn btn-primary btn-sm">Edit</button>
          </a>
          <a href="delete_transport">
            <button type="button" class="btn btn-danger btn-sm">Delete</button>
          </a>
          {% else %}
            <span class="text-muted">No Transport File Attached</span>
          {% endif %}  
        </li>
        <li>
          {% if object.ck_surface_file %}
          <a href="{{ object.ck_surface_file.url }}">{{ object.ck_surface_file }}</a>
          <a href="/ace/">
            <button type="button" class="btn btn-primary btn-sm">Edit</button>
          </a>
          <a href="delete_surface">
            <button type="button" class="btn btn-danger btn-sm">Delete</button>
          </a>
          {% else %}
          <span class="text-muted">No Surface File Attached</span>
        {% endif %}  
          </li>
        </ul>

<a href="/ck2yaml/{{ object.id }}">
  <button type="button" class="btn btn-primary btn-sm">Convert to YAML</button>
</a>
<a href="update">
  <button type="button" class="btn btn-primary btn-sm">Update Files</button>
</a>

<p><a href="/list/">Back to mechanism list</a></p>

{% endblock %}

<!DOCTYPE html>
{% load static %}
<html lang="en">
<head>
<title>ACE in Action</title>
<style type="text/css" media="screen">
    #editor { 
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
    }
</style>
</head>
<body>

<div id="editor">function foo(items) {
    var x = "All this is syntax highlighted";
    return x;


}</div>
<div id="file-content" style="display: none;"></div>

<script src="{% static 'JS/aceeditor.js' %}" type="text/javascript" charset="utf-8"></script>   
<script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.4.4/ace.js" type="text/javascript" charset="utf-8"></script>
<script>
    var editor = ace.edit("editor");
    editor.setTheme("ace/theme/monokai");
    editor.session.setMode("ace/mode/javascript");
</script>
</body>
</html>

1 个答案:

答案 0 :(得分:0)

第一个是跳转到ace编辑器之前的页面

第二个ace编辑器页面