diff --git a/src/core/src/lib/templates/field-template.type.ts b/src/core/src/lib/templates/field-template.type.ts index bf43b260a..38561e0bf 100644 --- a/src/core/src/lib/templates/field-template.type.ts +++ b/src/core/src/lib/templates/field-template.type.ts @@ -1,8 +1,27 @@ import { Component } from '@angular/core'; +import { DomSanitizer } from '@angular/platform-browser'; import { FieldType } from './field.type'; @Component({ selector: 'formly-template', - template: `
`, + template: `
`, }) -export class FormlyTemplateType extends FieldType {} +export class FormlyTemplateType extends FieldType { + get template() { + if (this.field && (this.field.template !== this.innerHtml.template)) { + this.innerHtml = { + template: this.field.template, + content: this.to.safeHtml + ? this.sanitizer.bypassSecurityTrustHtml(this.field.template) + : this.field.template, + }; + } + + return this.innerHtml.content; + } + + private innerHtml = { content: null, template: null }; + constructor(private sanitizer: DomSanitizer) { + super(); + } +}