使用主题组件编辑帖子

好的,我想我现在越来越近了。

我尝试了 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 键之一 :face_exhaling:。