angular - 绕过SecurityTrustHtml Angular 6后文本框不起作用
问题描述
我正在 Angular 6 中创建一个管道,如果通过某些条件,它会返回一个文本框。因为输入不安全。我正在使用 bypassSecurityTrustHtml 来解决这个问题。现在我有另一个问题..它显示了文本框,但我无法写入或更改它。看起来没有禁用,但我无法选择它并更改任何内容。有谁知道发生了什么?谢谢!!
import { Pipe, PipeTransform } from '@angular/core';
import { validateConfig } from '@angular/router/src/config';
import { TYPED_NULL_EXPR } from '@angular/compiler/src/output/output_ast';
import { SafeHtml, DomSanitizer } from '@angular/platform-browser';
@Pipe({
name: 'appConvertElement',
pure: false
})
export class ConvertElementPipe implements PipeTransform {
constructor( private _sanitizer: DomSanitizer) { }
transform(text: string, field: string) {
return this.ConvertValue(text, field);
}
private ConvertValue(text: string, field: string) {
let transformText = text;
if (condition)
return this.createTextBox(text,field);
}
return transformText;
}
createTextBox(text,id) {
let textBox = document.createElement('input');
textBox.type = 'text';
textBox.setAttribute("value", text);
textBox.id = id;
textBox.name = id;
textBox.value = text;
textBox.title = text;
// return textBox.outerHTML;
return this.safeHTML(textBox.outerHTML);
}
safeHTML(v: string): SafeHtml {
return this._sanitizer.bypassSecurityTrustHtml(v);
}
}
html是:
<div [innerHTML]="value | appConvertElement: field"></div>
解决方案
推荐阅读
- spring-mvc - 将列表对象从 thymeleaf 发送到控制器
- python-3.x - 从 CSV 文件中删除标题
- javascript - 如何使用 JavaScript 将文本从一个字段复制到另一个选项卡菜单的字段?
- php - 致命错误:在布尔值上调用成员函数 getData()
- python - ColumnTransformer 和 FeatureUnion 之间的 Scikit-Learn 管道代码差异
- android - android studio 导入 GreenDao 后无法解析 DaoMaster
- c++ - Valgrind 插入排序的大小为 8 的无效读取
- image - 更改图片时如何销毁缓存图像
- ios - 错误 ITMS-90730ITMS 无法在 Xcode 10.2.1 中上传 IPA
- bootstrap-4 - Bootstrap-4 脚本的最佳位置和脚本的标签