Directive not update view

Hello everybody, I have the following problem, I have a directive that returns some html elements on the screen when the user interacts with any of these elements a service is launched, everything works almost perfectly except for the fact that when I go to another screen which has the same directive everything is perfectly rendered the bug happens when I try to interact with these elements (as in the new newly loaded screen), with some logs that put I saw that everything works perfectly (processing and business logic) however the screen is not updated with the new values, if I am in the browser is the same, however I precionar F5 to refresh and try again interact the same work. Does anyone have ideas of what might be happening?

My Service

‘use strict’;
(function () {
angular.module(‘app.servicos.MarcacaoInteresses’, [])

.service(‘MarcacaoInteresses’, [’$timeout’, ‘$sce’, function ($timeout, $sce) {

  var self = this;
  var array = [];
  var idEdicao;
  //Oculta todos os campos e eibe somente o campo editavel para o usuário
  var exibeEditavel = function () {
      var editavel = angular.element(document.querySelector('#editavel'));
      var oculto = angular.element(document.querySelector('#oculto'));
      var edicao = angular.element(document.querySelector('#edicao'));
      if (editavel[0].className === 'hidden') {
          editavel[0].className = editavel[0].className.replace('hidden', '');
      }
      if (oculto[0].className !== 'hidden') {
          oculto[0].className = oculto[0].className + 'hidden';
      }
      if (edicao[0].className !== 'hidden') {
          edicao[0].className = edicao[0].className + 'hidden';
      }
  }
  //Função que monitora a digitação do usuário
  self.MonitorarDigitacao = function ($scope) {
      try {
          var temp = $scope.interesses.toLowerCase();
          var regex1 = new RegExp('[^0-9a-záéíóúàèìòùâêîôûãõç\s]');
          var res1 = regex1.exec(temp);
          var com_acento = 'áàãâäéèêëíìîïóòõôöúùûüçÁÀÃÂÄÉÈÊËÍÌÎÏÓÒÕÖÔÚÙÛÜÇ';
          var sem_acento = 'aaaaaeeeeiiiiooooouuuucAAAAAEEEEIIIIOOOOOUUUUC';
          for (i = 0; i < temp.length; i++) {
              if (com_acento.search(temp.substr(i, 1)) >= 0) {
                  var sub = sem_acento.substr(com_acento.search(temp.substr(i, 1)), 1);
                  temp = temp.replace(temp[i], sub);
              }
          }
          if (temp) {
              for (var i = 0; i < temp.length; i++) {
                  temp = temp.replace(res1, '');
                  $scope.interesses = temp;
              }
          }
      } catch (e) {
          console.log('Um erro ocorreu: '.concat(e));
      }
  }
  //Formata os interesses digitado
  self.formatarInteresses = function ($scope) {
      if ($scope.interesses) {
          if (array.indexOf($scope.interesses) == -1) {
              array.push($scope.interesses);
          }
      }
      $scope.interesses = '';
      $scope.interessesHtml = '';
      array.forEach(function (a, index) {
          $scope.interessesHtml += '<div class="interesses" ng-click="$parent.Editar(' + index + ')">'.concat(a, '</div>');
      });
      $scope.interessesHtml = $sce.trustAsHtml($scope.interessesHtml);
      self.mostarFormatado();
  }
  //Mostra o texto formatado para os usuários
  self.mostarFormatado = function () {
      var editavel = angular.element(document.querySelector('#editavel'));
      var oculto = angular.element(document.querySelector('#oculto'));
      var edicao = angular.element(document.getElementById('edicao'));
      if (editavel[0].className === 'hidden') {
          editavel[0].className = editavel[0].className.replace('hidden', '');
      }
      if (oculto[0].className !== 'hidden') {
          oculto[0].className = oculto[0].className + 'hidden';
      }
      if (edicao[0].className !== 'hidden') {
          edicao[0].className = edicao[0].className + 'hidden';
      }
  }
  //Mostra a caixa de escrita para os usários
  self.mostarEscrita = function () {
      var editavel = angular.element(document.querySelector('#editavel'));
      var oculto = angular.element(document.querySelector('#oculto'));
      if (editavel[0].className !== 'hidden') {
          editavel[0].className = editavel[0].className + 'hidden';
      }
      if (oculto[0].className === 'hidden') {
          oculto[0].className = oculto[0].className.replace('hidden', '');
      }
      $timeout(function () {
          angular.element(document.querySelector('#oculto_input'))[0].focus();
      }, 500);
  }
  //Mostra o campo de edição
  self.mostrarEdicao = function ($scope, index) {
      var editavel = angular.element(document.getElementById('editavel'));
      var oculto = angular.element(document.getElementById('oculto'));
      var edicao = angular.element(document.getElementById('edicao'));
      if (editavel[0].className !== 'hidden') {
          editavel[0].className = editavel[0].className + 'hidden';
      }
      if (oculto[0].className !== 'hidden') {
          oculto[0].className = oculto[0].className + 'hidden';
      }
      if (edicao[0].className === 'hidden') {
          edicao[0].className = edicao[0].className.replace('hidden', '');
      }
      idEdicao = parseInt(index);
      $scope.interesses = array[index];
      $timeout(function () {
          angular.element(document.querySelector('#edicao_input'))[0].focus();
      }, 500);
  }
  //Confirmação da edição
  self.ConfirmaEdicao = function ($scope) {
      array[idEdicao] = '';
      array[idEdicao] = $scope.interesses;
      exibeEditavel();
      self.formatarInteresses($scope);
  }
  //Exclui interesse seleciondo
  self.Excluir = function ($scope) {
      array.splice(idEdicao, 1);
      $scope.interesses = undefined;
      exibeEditavel();
      self.formatarInteresses($scope);
  }

}]);
})();

My Directive

> 'use strict';
> (function () {
>     angular.module('app.diretivas.Interesses', [])
>  .directive('interesses', ['$log', '$timeout', function (l, t) {
>      return {
>          restrict: 'AE',
>          replace: !0,
>          templateUrl: 'Diretivas/interesses/interesses.html'
>      }
>  }]);
> })();