Ich habe eine Direktive, die auf einer Seite mehrfach verwendet werden kann. In der Vorlage dieser Direktive muss ich IDs für ein Eingabeelement verwenden, damit ich ein Label wie folgt daran "binden" kann:
<input type="checkbox" id="item1" /><label for="item1">open</label>
Jetzt ist das Problem, sobald meine Direktive mehrmals enthalten ist, die ID "item1" nicht mehr eindeutig ist und die Beschriftung nicht richtig funktioniert (sie sollte das Kontrollkästchen aktivieren / deaktivieren, wenn sie angeklickt wird).
Wie wird dieses Problem behoben? Gibt es eine Möglichkeit, der Vorlage einen "Namespace" oder ein "Präfix" zuzuweisen (wie es asp.net mit dem Präfix ctl00 ...- tut)? Oder muss ich in jedes ID-Attribut einen Winkelausdruck einfügen, der aus der Direktiven-ID aus dem Bereich + einer statischen ID besteht? Etwas wie:
<input type="checkbox" id="{{directiveID}} + 'item1'" /><label for="{{directiveID}} + 'item1'">open</label>
Bearbeiten:
Meine Richtlinie
module.directive('myDirective', function () {
return {
restrict: 'E',
scope: true,
templateUrl: 'partials/_myDirective.html',
controller: ['$scope', '$element', '$attrs', function ($scope, $element, $attrs) {
...
} //controller
};
}]);
Mein HTML
<div class="myDirective">
<input type="checkbox" id="item1" /><label for="item1">open</label>
</div>