Доступ к HTML-содержанию директивы в родительском контроллере - PullRequest
0 голосов
/ 11 мая 2018

У меня есть оверлей, и я устанавливаю его положение вручную, открывая html-содержимое и получая высоту, ширину и т. Д.

Теперь я преобразовал оверлей в директиву.Но я не могу получить доступ к html-содержимому самой директивы, чтобы обновить позицию.

Что я пробовал: я пытался использовать replace: true в директиве.Но когда я пытаюсь получить доступ к div - я все равно получаю элемент директивы, а не содержимое html директивы.Например: Моя директива:

<my-dir somevalue='something'>
</my-dir>

Директива HTML:

<div class="overlay">
<span>{{somevalue}}</span>
</div>

Теперь, когда я пытаюсь получить доступ к элементу директивы, я хочу получить доступ к классу 'overlay'

1 Ответ

0 голосов
/ 12 мая 2018

Во-первых, в шаблоне вашей директивы вы, вероятно, должны ссылаться на somevalue, а не something, поскольку предположительно somevalue - это то, что устанавливается в области действия директивы.

Затем для доступа к .overlay дочерний элемент, в функции link вашей директивы вы можете использовать метод querySelector для собственного элемента DOM директивы, например:

link: function (scope, el, attrs) {
  var overlayElement = el[0].querySelector('.overlay');
}

el, который передается в linkfunction является элементом директивы, заключенным в jqLite, поэтому el[0] возвращает вам собственный элемент DOM.

Вот скрипка , демонстрирующая этот подход.

...