我有一些HTML,但出于某种原因,它显示为纯文本而且没有呈现。
这就是它的样子:
这样的HTML是这样的:
<div>
<mat-card>
<button mat-raised-button>Copy Code to Clipboard</button>
<mat-card-title>Card with title and footer</mat-card-title>
<mat-card-subtitle>Subtitle</mat-card-subtitle>
<mat-card-content>
<code>{{muchoCodo}}</code>
</mat-card-content>
<mat-card-actions>
<button mat-button>LIKE</button>
<button mat-button>SHARE</button>
</mat-card-actions>
<mat-card-footer>
Card Footer
</mat-card-footer>
</mat-card>
</div>
{{muchoCodo}}
字符串数据呈现为muchoCodo变量。这是我的Angular代码:
import {Component, OnInit} from '@angular/core';
declare var Prism;
import 'prismjs';
import 'prismjs/themes/prism-okaidia.css'
import 'prismjs/components/prism-handlebars.min.js'
import 'prismjs/components/prism-lua.min.js'
@Component({
selector: 'app-generated-code',
templateUrl: './generated-code.component.html',
styleUrls: ['./generated-code.component.scss'],
styles: [`
mat-card { margin:2em; }
`]
})
export class GeneratedCodeComponent implements OnInit {
muchoCodo: string;
constructor() {
this.muchoCodo = Prism.highlight(`
import suman = require('suman');
const {Test} = suman.init(module);
Test.create((b, it, before) => {
it('bahru', t => {
});
});
`, Prism.languages.javascript);
}
ngOnInit() {
}
}
有人知道如何将字符串呈现为HTML吗?
答案 0 :(得分:1)
为了将文本呈现为HTML,您必须绑定到所需容器元素的innerHTML
属性。
<mat-card-content>
<code [innerHTML]="muchoCodo"></code>
</mat-card-content>
请注意,这是一个潜在的安全问题,您应该信任要在页面上呈现的HTML内容。