angular - 如何在原始 html 中使用 Angular 5 组件
问题描述
我有一个带有 onClick 函数的组件,它返回带有角度组件的 HTML 代码,我想在模板上显示它。我该怎么做?
因为在当前状态下,我得到的只是“测试代码”,没有演示组件。
export class AppComponent {
title = 'app';
content;
onClick(){
console.log("Clicked!")
this.content = "Test code <democomponent></democomponent>";
}
}
<div>
<button (click)="onClick()">Click</button>
<div>
<div [innerHtml]="content"></div>
</div>
</div>
解决方案
尽管它在 Angular 6 中运行,但这可能不是“最干净”的方法。
首先,我使用以下 ng 命令创建了一个名为dummy.ts的组件,[您可以将其命名为任何您想要的名称...]
ng generate component dummy
在dummy.ts组件内容中添加任何内容之前,我首先需要定义一个管道文件。为方便起见,我使用以下 ng 命令在同一dummy.ts组件文件夹中生成了管道:
ng generate pipe SafeHtml
然后我添加了以下代码:
import { Pipe, PipeTransform } from '@angular/core';
import { DomSanitizer } from '@angular/platform-browser';
@Pipe({
name: 'safeHtml'
})
export class SafeHtmlPipe implements PipeTransform {
constructor(private sanitized: DomSanitizer) {}
transform(value) {
return this.sanitized.bypassSecurityTrustHtml(value);
}}
最后回到dummy.ts我添加了这个非常简单的基本代码。
import { Component, OnInit } from '@angular/core';
import {BrowserModule} from '@angular/platform-browser';
import { FormsModule } from '@angular/forms';
import { DomSanitizer } from '@angular/platform-browser';
import { SafeHtmlPipe } from './safe-html.pipe';
@Component({
selector: 'app-dummy',
templateUrl: './dummy.component.html',
styleUrls: ['./dummy.component.css']
})
export class DummyComponent implements OnInit {
name:string;
safeHtmlContent : string;
dummyContent : string;
onClick(){
this.safeHtmlContent = this.dummyContent;
}
constructor() {
this.dummyContent = '<h4>Some dummy title</h4><p>Some blah blah blah blah blah... dummy content</p>';
}}
在dummy.html我只是添加了以下内容:
<div>
<button (click)="onClick()">Click</button>
</div>
<div [innerHtml]="safeHtmlContent"></div>
推荐阅读
- php - Laravel如何根据发布日期显示内容
- android - 我找不到 Play 商店的 apk 发布文件
- php - 记住不使用 Laravel 的用户
- angular - 在 Square Connect 中提交表格后如何重置信用卡表格
- r - 合并子列表级别的列表列表
- actionscript-3 - 如何防止 softKeyboard 在 adobe air 上以横向全屏模式隐藏 textField?
- ios - 通知服务扩展 - 关于在推送通知上显示图像的问题
- c# - 当 useshellexecute = false 时 Process.start 找不到文件
- flutter - 如何从 Flutter WebView 访问本地 CSS、JS 和图像
- scenekit - 如何移动从 Blender 导入的节点