Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Renderer não funciona no PhotoOwnerOnlyDirective

Deve ser porque estou usando uma versão mais nova do Angular. Estou usando a versão 10.

@Directive({
  selector: '[photoOwnerOnly]'
})
export class PhotoOwnerOnlyDirective implements OnInit{

  @Input() ownedPhoto: Photo;

  constructor(
    private element: ElementRef<any>,
    private renderer: Renderer,
    private userService: UserService
    ) { }
1 resposta
solução!

Consegui atualizar o código para rodar no Angular 10.

import { Directive, ElementRef, Input, OnInit, Renderer2} from "@angular/core";
import { UserService } from "src/app/core/user/user.service";
import { Photo } from "../../photo/photo";


@Directive({
  selector: '[photoOwnerOnly]'
})
export class PhotoOwnerOnlyDirective implements OnInit{

  @Input() ownedPhoto: Photo;

  constructor(
    private element: ElementRef<any>,
    private renderer: Renderer2,
    private userService: UserService
    ) { }


  ngOnInit(): void {
   this.userService
    .getUser()
    .subscribe(user => {
      if(!user || user.id != this.ownedPhoto.userId) {
        this.renderer.setStyle(this.element.nativeElement, 'display', 'none');
      }
  });
}
}