2016-09-08 2 views
0

Gefunden diese amazing video, die angularJS Direktiven erklärt. Es gibt jedoch eine Sache, von der ich gehört habe, dass ich eine Frage habe.Sind angularJS-Direktiven eindeutig (oder nicht)?

"In eckigen Direktiven Namen sind nicht eindeutig, so dass wir die Tatsache unterstützen müssen, dass es für jeden Namen mehrere Direktivenfabriken geben kann."

^Ich bin mir nicht sicher. Kann der Moderator sagen, dass derselbe Anweisungsname zweimal (mit verschiedenen Factory-Funktionen) neu deklariert werden kann? Etwas wie der folgende Code.

app.directive('myDirective', function() { 
    return { 
    template: '<h1>hello</h1>' 
    } 
}); 

app.directive('myDirective', function() { 
    return { 
    template: '<h1>hi</h1>' 
    } 
}); 

jedoch Code wie diesen scheint einen Fehler zu werfen .. Es wäre toll, wenn jemand eine klären könnte.) Hat AngularJS speichern mehrere Werksfunktionen für jede Richtlinie ?, und b.) Wenn dies möglich ist Wie und wann würden wir so etwas tun?

+0

Was ist der Fehler es wirft? Ich habe es nie getan, aber es war mein Verständnis der letzte erklärte Dienst, Direktive usw. überschreibt alle anderen mit dem gleichen Namen deklariert. Wenn Sie beispielsweise zwei separate Module importieren, die denselben Service haben. – ste2425

Antwort

0

Entsprechend angular tips können Sie 2 Direktiven mit dem gleichen Namen haben und sie werden zusammenarbeiten. In den Kommentaren wird erwähnt, dass Sie keine isolierten Bereiche haben oder einen Controller benötigen.

Ich habe versucht, 2 Direktive mit dem gleichen Namen und andere Vorlage und die erste Vorlage wurde verwendet, keine Fehler (jsfiddle).

<div ng-app="ui.directives"> 
    <my-d></my-d> 
</div> 


var dirs = angular.module('ui.directives', []); 
dirs.directive('myD', 
    function() { 
    return { 
     restrict: 'E', 
     template: 'hey' 
    }; 
    } 
); 
dirs.directive('myD', 
    function() { 
    return { 
     restrict: 'E', 
     template: 'hello', 
    }; 
    } 
); 

Was ist dein Fehler? versuchen, eine jsfiddle

+0

Ich sah diesen Fehler angular-1.0.0.js: 5525 Fehler: Mehrere Anweisungen [myD, myD] fragen nach Vorlage auf: aber ich denke, der Code funktioniert sowieso. Vielen Dank... –

Verwandte Themen