1
resposta

Fazer {{ pensamento.conteudo }} para carregar uma importação de vídeo no youtube

Olá, profs e colegas! Tudo bem? Estou tentando fazer a importação de um vídel que está salvo na minha base de dados do projeto Memoteca, mas não está dado certo.

Quando eu passo o {{ pensamento.youtube }} para carregar o link do vídeo salvo no backend, ele carrega o link corretamente no <p></p>, mas quando eu coloco dentro da tag iframe <iframe></iframe>, ele dá erro.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Na tela:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Quando tento passar no <iframe></iframe>, ele apaga todos os dados da página e a página fica toda branca.

Existe algum modo de consertar?

Obrigado.

1 resposta

Oi, Jonathas! Como vai?

O problema que você está enfrentando deve estar relacionado ao Angular interpretando mal a variável {{ pensamento.youtube }} dentro da tag <iframe>. O Angular pode estar sanitizando a URL, e a removendo por segurança, o que pode fazer a página ficar em branco.

Para solucionar, vamos usar um serviço do Angular chamado DomSanitizer, que permite marcar uma URL como segura antes de usá-la no iframe.

Siga estes passos para corrigir o problema:

  1. Importe e injete o DomSanitizer no seu componente:

import { Component } from '@angular/core';
import { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';

@Component({
  selector: 'app-seu-componente',
  templateUrl: './seu-componente.component.html',
  styleUrls: ['./seu-componente.component.css']
})
export class SeuComponente {
  videoUrl!: SafeResourceUrl;

  constructor(private sanitizer: DomSanitizer) {}

  ngOnInit() {
    const urlDoBanco = 'https://www.youtube.com/embed/seu_video_id'; // Exemplo
    this.videoUrl = this.sanitizer.bypassSecurityTrustResourceUrl(urlDoBanco);
  }
}

2️. Agora, no HTML, use a variável segura dentro do iframe:





O que esse código faz?

  • O DomSanitizer converte a URL vinda do backend em uma URL segura.
  • O bypassSecurityTrustResourceUrl(url) informa ao Angular que a URL pode ser usada dentro do iframe sem riscos.
  • Isso evita que a página fique em branco por conta da sanitização automática do Angular.

Caso queira aprender mais sobre o DomSanitizer, recomendo que faça a leitura de sua documentação.

Espero ter ajudado. Conte com o apoio do Fórum na sua jornada. Fico à disposição :)

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado