【发布时间】:2017-06-11 19:48:57
【问题描述】:
我有一个包含数据的 JSON 文件。在每个对象中,我都有一个带有 HTML 标记、样式和文本的“描述”字段,如下所示:
<div>__localname__</div>
<div style="color: #555; margin-top:2px; margin-left:10px;"><div style="display:inline; color:#d34319 ">[DV]</div> Проверка домена (выдача от 5 минут)</div>
<div style="color: #555; margin-top:2px; margin-left:10px;">Защищает домен с www и без www (указывайте при заказе домен с www, например www.domain.ru)</div>
<div style="color: #555; margin-top:2px; margin-left:10px;">Гарантия 10000$</div>
我想在悬停时显示这些样式数据 问题是 Title ([attr.title] or Title, or [title]) 没有显示 div 的样式,浏览器建议我访问这个链接http://g.co/ng/security#xss
我将 Pipe 与 DomSanitizer 一起使用:
@Pipe({ name: 'safeHtml'})
export class SafeHtmlPipe implements PipeTransform {
constructor(private sanitized: DomSanitizer) {}
transform(value: any) {
return this.sanitized.bypassSecurityTrustHtml(value);
}
}
这就是我获取数据的方式:
1) 我得到 JSON
getPriceList() {
return this.httpGet('./ssl.json');
}
2) 使其在网页上可见
ngOnInit() {
this.appService.getPriceList().subscribe(data => {
this.pricelist = data.pricelist;
});
}
3) Html,我想在悬停时显示样式“标题”
<tbody>
<tr *ngFor="let item of pricelist">
<td>
<a data-toggle="tooltip" data-html="true"
title="{{item.description|safeHtml}}">
{{ item.name }}
</a>
</td>
<td> от {{ item.price.period[0].cost }} {{ item.price.currency }}</td>
<td> <div [innerHTML]='item.description | safeHtml'></div> </td>
</tr>
</tbody>
[innerHTML] 工作正常,但标题不... 如何使用 JSON 文件中的数据?
这是错误的屏幕截图: https://yadi.sk/i/uieFFCfa3BMq4v
【问题讨论】:
-
您是否在网络服务器中运行您的应用程序?还是您使用简单的基于文件的方法?看看this
-
@Ken 没关系,它是一个angular2 sanitizer,他必须使用
DomSanitizer类的方法bypassSecurityTrustHtml。
标签: javascript json angular