#angularjs #angularjs-directive
#angularjs #angularjs-директива
Вопрос:
У меня есть директива, которая использует атрибут для создания более сложной разметки.
Вот используемая директива:
<alerts heading="Alerts {{ count }}">
<ul>
<li ng-repeat="alert in alerts">{{ alert.description }}</li>
</ul>
</alerts>
Шаблон директивы выглядит следующим образом:
<div>
<h1></h1>
<div ng-transclude></div>
</div>
Как я могу вставить атрибут заголовка в, h1
чтобы изменения в заголовке были count
обновлены?
Комментарии:
1. Предполагая, что директива находится в
<alerts>
теге, ее атрибуты становятся доступными директиве в качестве третьего параметра функции link (после области видимости и элемента).)
Ответ №1:
Вы можете изолировать свою область видимости и использовать обозначение «@» для сбора переменных, которые будут использоваться для вашей директивы шаблона. Пожалуйста, также обратите внимание, что в вашем шаблоне ng-transclude
написано неправильно.
например
JAVASCRIPT
directive('alerts', function() {
return {
restrict: 'E',
scope: {heading: '@'},
transclude: true,
templateUrl: 'alert.html'
}
});
alert.html
<div>
<h1 ng-bind="heading"></h1>
<div ng-transclude></div>
</div>
использование
<alerts heading="Alerts {{alerts.length}}">
<ul>
<li ng-repeat="alert in alerts">{{ alert.description }} <button ng-click="remove(index)">remove</button></li>
</ul>
</alerts>