У меня есть директива, которую можно использовать несколько раз на странице. В шаблоне этой директивы мне нужно использовать идентификаторы для элемента ввода, чтобы я мог "привязать" ярлык к нему так:
<input type="checkbox" id="item1" /><label for="item1">open</label>
Теперь проблема заключается в том, что, как только моя директива включена несколько раз, идентификатор "item1" больше не уникален, и метка работает некорректно (он должен проверять/снимать флажок при нажатии).
Как эта проблема исправлена? Есть ли способ назначить "пространство имен" или "префикс" для шаблона (например, asp.net с префиксом ctl00...-)? Или мне нужно включить angular -Expression в каждый атрибут id, который состоит из идентификатора директивы из Scope + статического идентификатора. Что-то вроде:
<input type="checkbox" id="{{directiveID}} + 'item1'" /><label for="{{directiveID}} + 'item1'">open</label>
Edit:
Моя директива
module.directive('myDirective', function () {
return {
restrict: 'E',
scope: true,
templateUrl: 'partials/_myDirective.html',
controller: ['$scope', '$element', '$attrs', function ($scope, $element, $attrs) {
...
} //controller
};
}]);
Мой HTML
<div class="myDirective">
<input type="checkbox" id="item1" /><label for="item1">open</label>
</div>