api.decorateWidget - 템플릿 이름을 어떻게 찾을 수 있나요?

플러그인 아웃렛에 decorateWidget()을 사용할 수 없습니다. 다음과 같은 방식으로 시도해 보세요:

<script type="text/discourse-plugin" version="0.8.42">
    const h = require("virtual-dom").h;
    api.createWidget("user-card-custom-field", {
      html(attrs) {
        const userCustomFields = attrs.user.custom_fields;
        if (userCustomFields.user_field_4) {
            return h('span.poster-user-field', userCustomFields.user_field_4);
        }
      }
    });
</script>

<script type="text/x-handlebars" data-template-name="/connectors/user-card-post-names/user-card-custom-field">
    {{mount-widget widget="user-card-custom-field" args=(hash user=user)}}
</script>

mount-widget은 코어의 플러그인 아웃렛에서 사용할 수 있는 user 객체를 전달하여, 우리가 생성한 user-card-custom-field 위젯의 속성에서 사용할 수 있게 합니다.

필요에 따라 user_field_4를 공개 사용자 사용자 정의 필드(public user custom fields) 또는 스태프 사용자 사용자 정의 필드(staff user custom fields) 사이트 설정에 추가했는지 확인하세요.

수정

또한, 특별히 해야 할 일이 없다면 위젯을 완전히 피하고 플러그인 아웃렛만 사용하는 것이 가능합니다:

<script type="text/x-handlebars" data-template-name="/connectors/user-card-post-names/user-card-custom-field">
  {{#if user.custom_fields.user_field_1}}
    <span class="poster-user-field">{{user.custom_fields.user_field_1}}</span>
  {{/if}}
</script>