javascript - AJAX Javascript 字符串和 Pyramid

标签 javascript ajax pyramid

我正在构建一个 Pyramid 网络应用程序,并且正在尝试实现 JavaScript Markdown 编辑器 EpicEditor 来编辑 Markdown 文件。

$.ajax({
    url: "{{ request.resource_url(context) }}raw_markdown",
    context: document.body,
    success: function(md){
        markdown = md;
    }
})
var opts = { 
    basePath: '{{ request.static_url('plcars:static/') }}',
    focusOnLoad: true,
    clientSideStorage: false,
    autogrow: true,
    file: { defaultContent: markdown }
};
var editor = new EpicEditor(opts);
editor.load();

但是 EpicEditor 的行为就像 markdown 为空一样。如果我调用 alert(markdown),它也是空的,如果我尝试 document.write(markdown); 也不会发生任何事情。

我知道 ajax 调用的 URL 有效,因为我可以在 Firefox Web 控制台中看到请求成功。另外,如果我在控制台中输入以查看变量 markdown 的值,它就应该是这样的(例如,“这是我的文本”)。

在此之前,我曾尝试通过 JSON 容器传递 markdown,除了字符串永远无法显示在页面上之外,这似乎很顺利。

最佳答案

您应该将代码放在 success 回调中,因为您的 $.ajax 调用是异步的:

$.ajax({
    url: "{{ request.resource_url(context) }}raw_markdown",
    context: document.body,
    success: function (md) {
        markdown = md;
        var opts = {
            basePath: '{{ request.static_url('plcars:static/') }}',
            focusOnLoad: true,
            clientSideStorage: false,
            autogrow: true,
            file: {
                defaultContent: markdown
            }
        };
        var editor = new EpicEditor(opts);
        editor.load();
    }
})

关于javascript - AJAX Javascript 字符串和 Pyramid ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19714290/

相关文章:

javascript - JQuery 从多个 anchor 单击以进行 ajax 调用

python - 减少从大型 SQLAlchemy 数据库中检索行的时间

javascript - 我应该如何根据时间删除这些 <li> 元素?

javascript - 如何检查字符串是否有效 JavaScript?

javascript - 将 ajax 数据从 Controller 传递到指令

javascript - 从路径或URL初始化音频WAV文件对象

mysql - sqlalchemy FetchedValue 和 primary_key

python - 维护用户输入数据,同时返回验证错误

javascript - 如何在 React.Fragment 中通过 ID 获取元素?

javascript - 如何在点击div后立即插入DOM元素