素晴らしい!やり方を理解しましたね。 ![]()
いくつか改善点があります。
-
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_", "");
}
});
});
