我正在构建一个 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/