#javascript #angular #typescript #ionic-framework #ionic4
#javascript #угловой #typescript #ionic-framework #ионический 4
Вопрос:
Я объявил одну статическую переменную, которая содержит 1 html-код, содержащий событие одного щелчка. При событии щелчка я пытаюсь вызвать метод, который откроет ссылку в appbrowser. Я уже использую один канал для отображения сообщения об ошибке, чтобы обойти встроенную защиту, предоставляемую angular. В консоли браузера ошибка не отображается, но я все равно не могу щелкнуть тег привязки, содержащий событие щелчка.
сообщения-notifications.page.ts
import { Component, OnInit } from '@angular/core';
import { InAppBrowser } from '@ionic-native/in-app-browser/ngx';
@Component({
selector: 'app-messages-notifications',
templateUrl: './messages-notifications.page.html',
styleUrls: ['./messages-notifications.page.scss'],
})
export class MessagesNotificationsPage implements OnInit {
myMsg = '';
constructor() {
this.myMsg = '<u><a (click)="openBrowserWindow("https://stackoverflow.com")">click here</a></u>';
}
ngOnInit() {
}
openBrowserWindow(text): void {
console.log("openBrowser called");
let browser = new InAppBrowser();
browser.create(text, '_blank', 'location=yes')
}
}
messages-notifications.page.html
<ion-content>
<ion-card>
<ion-item [innerHtml]="myMsg | safeHtml" class="ion-text-wrap"></ion-item>
</ion-card>
<ion-content>
безопасный-html.pipe.ts
import { Pipe, PipeTransform } from '@angular/core';
import { DomSanitizer } from "@angular/platform-browser";
@Pipe({
name: 'safeHtml'
})
export class SafeHtmlPipe implements PipeTransform {
constructor(private sanitizer:DomSanitizer){}
transform(html) {
return this.sanitizer.bypassSecurityTrustHtml(html);
}
}
Комментарии:
1. Angular не анализирует и не применяет привязку к вашему HTML-коду
2. Как этого добиться? в моей ситуации значение myMsg — это серверная служба, которая содержит тег привязки, и мне нужно открыть ссылку в браузере устройства по умолчанию после создания сборки Android или сборки ios.
3. В вашем <ion-item> добавьте событие щелчка
<ion-item (click)="openBrowserWindow("https:/....")"></ion-item>
4. все то же самое. не устранено
Ответ №1:
Вы пытались использовать (tap)
вместо (click)
?