bezrukovPS
@bezrukovPS
Ведущий программист 1С-Битрикс

Как из Angular Expression получить ссылку на текущий DOM элемент?

Добрый день.
Никак не могу найти информацию о том как из Angular Expression получить ссылку на дом элемент в атрибуте которого оно используется.
<div ng-controller="DemoCtrl">
  <ul>
    <li><a demo-id="15" ng-class="{active: arDemos['demo-id'] == ????????}">Привет {{arDemos['demo-id']}}</a></li>
  </ul>
</div>

Вообще пришёл к выводу что никак, и класть айдишник прямо в html вместо ????????, но это не элегантно.
В общем хотелось бы понять, можно ли как-то получить ссылку на this внутри expression. У дом элемента нет собственного $scope.
Заранее благодарен за помощь.
  • Вопрос задан
  • 3349 просмотров
Пригласить эксперта
Ответы на вопрос 2
Сделайте в DemoCtrl свойство $scope.activeDemo, и храните там активный элемент, либо же его айдишник. Тогда будет гораздо проще делать так:
<li><a demo-id="15" ng-class="{active: arDemos['demo-id'] == activeDemo}">Привет {{arDemos['demo-id']}}</a></li>
Ответ написан
Комментировать
maxaon
@maxaon
Нет, нельзя. Доступ к DOM из angular expression запрещен. Если вам необходимо получить id, тогда используйте директиву, например:
module.directive("demoId", function(){
    return function(scope, element, attrs){
            scope.id = attrs.demoId;
    }
})
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы