2016-06-30 3 views
1

Ich habe zwei fast identische Direktiven in zwei Dateien.Angular Direktiven in zwei verschiedenen Dateien: nur eine wird in der Ansicht

Datei ein:

//firstTestDirective.js 
angular.module('utility', []) 
    .directive('firstTest', function() { 
     return { 
      restrict: 'AE', 
      template: '<div>first test</div>' 
     }; 
    }); 

Datei zwei:

//secondTestDirective.js 
angular.module('utility', []) 
    .directive('secondTest', function() { 
     return { 
      restrict: 'AE', 
      template: '<div>second test</div>' 
     }; 
    }); 

Beide Dateien werden in index.html enthalten, sowie ein Paar von Tags, die sie nennen:

<body> 
    ... 
    <div first-test></div> 
    <div second-test></div> 
    ... 
</body> 
<script src=".../firstTestDirective.js"></script> 
<script src=".../secondTestDirective.js"></script> 

Diese sollte einfach sein, aber hier kommt die Seltsamkeit: die Anweisung in welches Skript geladen wird nach der andere ist der einzige, der erscheint.

Wie oben geschrieben, bekomme ich "zweiten Test", aber nicht "ersten Test" aus meiner Sicht. Wenn ich die Ladereihenfolge umkehren ...

<script src=".../secondTestDirective.js"></script> 
<script src=".../firstTestDirective.js"></script> 

... dann werde ich „ersten Test“ erhalten, aber nicht „zweiten Test“ auf meiner Sicht.

Der Bug oder was auch immer es sein mag, macht mich ein bisschen verrückt.

Noch jemand in ein ähnliches Problem?

P.S. Eine Reihe anderer Skripte werden nach den beiden obigen Skripten geladen und sie scheinen alle gut zu funktionieren. Es gibt keine Fehler in Chrome Debug und alle Skripte werden geladen.

Antwort

1

Wenn Sie eine andere Anweisung hinzufügen, sollten Sie ein Modul nicht erneut erstellen. Verwenden Sie das Modul utility, das durch die 1. js-Datei definiert wurde und secondTestDirective.js lautet. Grundsätzlich passiert, wenn Sie angular.module('utility', []) in der zweiten Datei haben, löscht es alle registrierte Komponente mit utility Modul.

angular.module('utility') //used already created module 
.directive('firstTest', function() { 
+0

Ich benutze das gleiche Modul ("Dienstprogramm") in beiden Richtlinien. Vielleicht verstehe ich nicht, was du sagst. – crowhill

+0

Warten. Vielleicht sehe ich es. – crowhill

+0

Völlig es. Vielen Dank! – crowhill