Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Dúvida sobre o tópico 'Como compartilhar uma propriedade entre a diretiva e o controller?'

No tópico Como compartilhar uma propriedade entre a diretiva e o controller? (https://cursos.alura.com.br/forum/topico-como-compartilhar-uma-propriedade-entre-a-diretiva-e-o-controller-21747) foi feita uma alteração nó código para que quando uma foto fosse removida o título da lista de títulos também fosse.

Adicionei o seguinte código na minha diretiva que cria a lista:

// Código apresentado no curso omitido

$rootScope.$on('photoDeleted', function() {
       console.log('photo test');
     });

E no meu controller o seguinte código:

$scope.$broadcast('photoDeleted', photo);

Porém não recebi nenhum retorno na minha diretiva, podem me ajudar?

2 respostas
solução!

Oi Danilo,

O $broadcast lança o evento para os escopos filhos. No caso, como chamamos $scope.$broadcast, o evento não sobe pro pai - o $rootScope.

Para isso, usamos o $emit. Então um $scope.$emit vai fazer o evento subir em direção aos escopos pais e atingir o $rootScope.

Doc: https://docs.angularjs.org/api/ng/type/$rootScope.Scope#$emit

Oi Sergio,

Funcionou perfeitamente, Obrigado! =)