안녕하세요, 기존 템플릿을 단순히 오버라이드하는 것이 아니라, 제 자체 Raw 템플릿을 추가하려고 하고 있습니다.
이유는: 중첩된 컴포넌트를 사용할 때 나타나는 귀찮은 ember 태그들을 제거하기 위해서입니다.
… 처음에는 templates 또는 templates/list 디렉토리에 하나만 추가하면 된다고 생각해서 그렇게 해보았지만, 템플릿을 찾지 못해 조용히 실패했습니다.
이것이 지원되지 않는지 확인해 주실 수 있을까요?
그런 다음 이것을 발견했습니다:
그리고 이것도:
그래서 이렇게 시도해 보았습니다:
import { addRawTemplate } from "discourse-common/lib/raw-templates";
import { compile } from "handlebars";
<---일부 초기화 코드 -->
addRawTemplate('search-result-entry', compile(`<span class='result-lala'>hello</span>`));
그런데 이런 오류가 발생했습니다:
TypeError: Handlebars.compile is undefined
감사합니다!
여기서 제가 뭔가 잘못하고 있다면 죄송합니다 …
(참고로, 이 기능은 정말 유용할 것 같습니다. 구현해 주셔서 감사합니다!)
justin
(Justin DiRose)
2
raw 템플릿을 templates 폴더에 바로 추가할 수 있어야 합니다. discourse-docs에서는 그렇게 했습니다. 지금은 .hbr 파일 확장자를 사용하므로, 아마도 그 부분이 문제가 된 것 같습니다.
david
(David Taylor)
3
ember 컴포넌트에 기본적으로 추가되는 래퍼 <div>를 말씀하시는 건가요? tagName을 빈 문자열로 설정하면 비활성화할 수 있습니다:
ember 컴포넌트로 작업하는 것은 원시 템플릿보다 훨씬 쉬우므로, 가능하면 ember를 사용하는 것을 강력히 권장합니다.
아, 제 hbr 템플릿을 templates/components에 넣어놨었네요! (그렇게 적어놓고 보니 당연히 잘못된 거죠)
예시를 알려주셔서 감사합니다, Justin! 그걸 templates 폴더로 옮기면서 해결했어요. 어머나!
이제 잘 작동합니다!
@david 정말 유용한 팁이네요, 감사합니다! 저도 그걸 활용하겠습니다! 그러면 액션을 유지할 수 있어서 완벽하네요.
제대로 보니 제가 훨씬 더 복잡하게 만들어놨었네요. 감사합니다!