AJAX Javascript字符串和金字塔

时间:2013-10-31 18:43:21

标签: javascript ajax pyramid

我正在构建一个金字塔Web应用程序,我正在尝试实现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控制台中看到的那样,请求成功了。此外,如果我在控制台中输入以查看变量降价的值,则它应该是正确的(例如,"This is my text")。

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

1 个答案:

答案 0 :(得分:3)

您应该将代码放在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();
    }
})