2017-04-05 3 views
1

Si une uib-tabset et une directive attendaient une modification d'une entrée à l'intérieur du uib-tabset, cette directive est atteinte, mais quand elle doit déclencher une portée. diffusé ceci n'appelle pas la fonction.uib-tabset supprimant la portée de ma directive de changement d'entrée

Voir

<uib-tabset active="active"> 
    <uib-tab> 
     <input type="file" class="upload" share-all="" accept="image/*"> 

service/Directive

.directive('shareAll', [function() { 
    return { 
     restrict: 'A', 
     link: function(scope, elem, attr) { 
      $(elem).on('change', function(event) { 
      return scope.$broadcast('shareIt', elem); 
      } 
     } 
    } 
}); 

Contrôleur

$scope.$on('shareIt', function(event, file) { 
}); 

j'ai vu ce (https://github.com/angular-ui/bootstrap/issues/1553), mais rien compris du tout, et cela me tue lentement.

Quelques pensées?

Répondre

0

Je ne pense pas que vous avez besoin de cet objet jQuery $, élém est déjà un objet jqLite (sauf si vous avez jQuery, puis élém est déjà un alias pour $).

vous n'avez pas non plus fermé vos fonctions correctement.

app.directive('shareAll', [function() { 
    return { 
     restrict: 'A', 
     link: function(scope, elem, attr) { 
      elem.on('change', function(event) { 
       return scope.$broadcast('shareIt', elem); 
      }) 
     } 
    } 
}]); 

Voici une démo plunk