我正在构建一个金字塔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,这似乎很顺利,但字符串永远不会显示在页面上。
答案 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();
}
})