【发布时间】:2018-02-28 11:06:41
【问题描述】:
我正在基于以下Ionic Wordpress App Template 制作一个可与 WP Rest API 配合使用的 Ionic 应用程序。
有一个页面将帖子列表加载为一个对象数组,其中包含由 Wordpress 呈现的帖子的 HTML。
Wordpress Service 的摘录
let url = this.config.wordpressApiUrl + `/wp/v2/posts?${query}&_embed`;
return this.http.get(url)
.map(result => {
return result.json();
});
Wordpress Posts Component 的摘录
export class WordpressPosts implements OnInit {
posts: any;
//...
ngOnInit() {
this.wordpressService.getPosts()
.subscribe(
result => this.posts = result
);
}
然后将呈现的 HTML 插入到 DOM 中
Worpress Post HTML 的摘录
<ion-card text-wrap *ngIf="post.content.rendered">
<p id="postContent" padding [innerHtml]="post.content.rendered"></p>
</ion-card>
我希望将 innerHTML (post.content.rendered) 中的所有链接都用 (click)="openLink($1)" 替换为 openLink() 函数:
openLink(url) {
window.open(url, '_system');
}
它非常适合在系统浏览器(Chrome 或 Safari)中打开链接,而不是在 InAppBrowser 或更糟糕的情况下,在替换它的应用程序内部。
在 AngularJS 中,我本可以使用 $compile,但因为在 Angular 4 中我不知道有任何替代方法。有没有办法在将 HTML 代码放入 DOM 之前手动调用该 HTML 代码上的 Angular 模板编译器?还是有其他方法可以在系统浏览器中打开该 HTML 中的所有链接?
【问题讨论】: