太棒了!你找到了实现方法。 ![]()
你可以做一些改进:
-
api.decoratedCooked将被弃用,并且会在每次发布时调用。
你可以改用decorateCookedElement,它可以在没有 jQuery 的情况下工作。 -
一个代表当前帖子的
element会被传递给 API;你可以将其用作帖子的上下文。 -
你可以使用 ember 的
schedule函数来等待元素渲染。
import { schedule } from "@ember/runloop";
// const { schedule } = require("@ember/runloop"); // 如果在 Admin UI 中运行,请使用此行
api.decorateCookedElement((element, /* helper */) => {
schedule("afterRender", () => {
const article = element.closest("article");
if (article) {
article.dataset.postNumber = article.id.replace("post_", "");
}
});
});
