javascript - Angular 4 如何将 innerHtml 与 *ngFor 一起使用?
问题描述
我有以下来自 api 的回应
[
{
"Cinema_strName":"dfdsfsd, Ahmedabad",
"Cinema_strID":"HIWB",
"Cinema_strBannerImg":"F&BCombo.jpg",
"cinema_addr":"fsdfsdfr,Drive-in Road, 380052, ",
"cinema_loc":"<iframe src=\"fsdfsdfdsfsfdsfdsffsf4!2i768!4f13.1!3m3!1m2!1s0x0%3A0x6a9f5938cfed5cd2!2sCarnival+Cinemas!5e0!3m2!1sen!2sin!4v1467809324170\" width=\"600\" height=\"450\" frameborder=\"0\" style=\"border:0\" allowfullscreen></iframe>",
"cinema_mob":0
}
]
我想从 api 获取 iframe 并附加到 div 地图
为此,我在TS
文件中写道
this.common.createAPIService('api/cinemas/List?CityName='+city, '').subscribe((result: any) => {
if(result.length){
this.cinema = result;
console.log(this.cinema);
}else{
alert('Cinema not found');
}
})
html模板:
<div class="map" *ngFor="let map of cinema">
<div [innerHTML]="map.cinema_loc"></div>
</div>
但是 HTML 没有出现,但如果我正常绑定,如下所示
<div class="map" *ngFor="let map of cinema">
<div>{{map?.cinema_loc}}</div>
</div>
iframe 以文本格式显示。
如何附加为 html?
请帮忙。
根据我在下面尝试过的给定解决方案
this.common.createAPIService('api/cinemas/List?CityName='+city, '').subscribe((result: any) => {
if(result.length){
this.cinema = result;
this.cinema = this.sanitizer.bypassSecurityTrustHtml(this.cinema);
console.log(this.cinema);
}else{
alert('Cinema not found');
}
但不起作用。如果我 console.log this.cinema.cinema_loc。变得不确定。
解决方案
我认为这会奏效。第一个解决方案是:
<ng-container *ngFor="let testString of testStrings">
<label [innerHtml]="testString"></label>
</ng-container>
第二个解决方案是:
this.testString = this.sanitizer.bypassSecurityTrustHtml(this.testString);
推荐阅读
- jquery - 如何使用 jQuery ajax 检索数据
- jquery - 单击时调整背景颜色
- python - 使用 Selenium 上传和处理 MaterializeCSS 表单中的文件
- typescript - 并非所有 Braintree HostedFields 方法都可用于打字稿?
- jquery - li 元素是在 ul 中还是在 ul 之外?
- python - Python 请求不使用网络
- kubernetes - 更新秘密时重启 Pod
- javascript - 为什么 guild.cache.get() 返回未定义?
- authentication - 如何覆盖 abp.io 提供的登录页面?
- python - Python:将json列表结果写入JSON文件