2016-07-21 5 views
0

Ich habe eine benutzerdefinierte Anweisung, die gut funktionierte, bis ich einige Dienste hinzugefügt, gibt mir einen "Fehler: ng: Areq Bad Argument" kann es nicht herausfinden, warum.Aufruf von Diensten in einer benutzerdefinierten Direktive

Meine Richtlinie:

angular.module('myApp') 
    .directive('modalContent',[ 
     '$uibModal', 
     'UserService'], 
     function($uibModal, UserService){ 
     return { 
      restrict: 'A', 
      priority: 100, 
      link: function($scope, element, attrs) { 
       element.on('click', function(evt){ 

        console.log("Click and Stop"); 

        evt.preventDefault() 
        evt.stopImmediatePropagation(); 

        $scope.$apply(function(){ 
         console.log("call Modal"); 
        }); 

       }); 
      } 
     }; 
    }); 
+0

Ist das 'myApp'-Modul anderswo definiert? – Rachmaninoff

Antwort

1

Versuchen Sie, das Winkelmodul initialisiert, bevor die Richtlinie zu erstellen:

angular.module('myApp',[]); 

Danach können Sie Ihren Code verwenden.


Edit:

Der Fehler wird durch einen Syntaxfehler, Sie haben eine extra ] nach 'UserService' die korrekte Definition der Richtlinie ist:

angular.module('myApp') 
    .directive('modalContent',[ 
     '$uibModal', 
     'UserService', 
     function($uibModal, UserService){ 
     return { 
      restrict: 'A', 
      priority: 100, 
      link: function($scope, element, attrs) { 
       element.on('click', function(evt){ 

        console.log("Click and Stop"); 

        evt.preventDefault() 
        evt.stopImmediatePropagation(); 

        $scope.$apply(function(){ 
         console.log("call Modal"); 
        }); 

       }); 
      } 
     }; 
    }]); 

Auch in der eine Veränderung bemerken Ende: }]); statt });