(() => { const { Handlebars, utils, actions, EventManager } = ShopbySkin; const searchParams = new URLSearchParams(location.search); const articleNo = Number(searchParams.get('articleNo')); // 핸들바 템플릿 렌더링 함수 const renderWinnerNoticeDetail = (data) => { const containerEl = document.querySelector('winner-notice-detail'); if (!containerEl) return; const templateEl = containerEl.querySelector('script[type="text/x-handlebars-template"]'); if (!templateEl) return; const templateSource = templateEl.innerHTML; const template = Handlebars.compile(templateSource); const renderedHtml = template(data); // 템플릿 스크립트 제거 후 렌더링된 HTML 삽입 containerEl.innerHTML = renderedHtml; }; EventManager.on('PAGE_LOAD_COMPLETED', async () => { try { const winnerDetailRes = await actions.queryArticleDetail({ boardNo: 'announcement', articleNo: articleNo, }); const detailData = winnerDetailRes.data; detailData.content = utils.getSanitizeHTML(detailData.content); // 핸들바 렌더링 실행 renderWinnerNoticeDetail(detailData); } catch (error) { EventManager.fire('MODAL_ALERT_OPEN', { noticeType: 'CAUTION', message: `${error.error.description}`, onClose: () => { // /* 모달 닫힐 때 실행할 동작 */ location.href = '/pages/event/winner-notice.html'; }, }); } }); })();