好的,我想我现在越来越近了。
我尝试了 this.post.save(),它“有效”——看起来 PUT 请求已经通过(底层使用了 ajax),但遇到了一个几乎没有信息的错误。但那是在这之前……
this.post.save() 有效。唯一的问题是下面列出的问题:
我的函数现在是这样的:
@action
async addCodeFences() {
let selectedText = this.selectedText;
let newText = "```" + "\n" + selectedText + "\n" + "```";
let post = this.post;
console.log(this.post.cooked); // 有效
let rawPost = post.raw; // 不存在!!
console.log(rawPost); // undefined!
rawPost.replace(selectedText, "\n" + newText + "\n"); // 错误,因为 rawPost 是 undefined!
await this.post.save({
raw: rawPost,
edit_reason: I18n.t(themePrefix("add_code_fence_edit_reason"))
});
}
不知何故,我无法获取帖子的原始内容,只能获取已烹饪的内容。除了进行 ajax 请求之外,还有其他方法可以做到吗?我似乎找不到 raw 作为帖子的属性之一……它不包含在内是有原因的吗?
附注:我正试图不求助于 Ask Discourse。我将非常感谢任何帮助!
编辑:我认为每个帖子都基于 此 API 请求?并且响应似乎没有 raw 作为 JSON 键之一
。