событие щелчка не работает в проекте ionic 4

#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) ?