2014-02-01 3 views
1

Есть ли способ получить индекс элемента директивы в AngularJS? Я ничего не нашел через документацию AngularJS и Google. Например, у меня есть несколько директивных элементов в моем DOM:Как получить доступ к элементу индекса директив AngularJS

<div directive></div> 
<div directive></div> 
<div directive></div> 

Каждый из них имеет уникальное значение offsetTop. И я хочу, чтобы написать эти смещения в переменной области действия идентифицированного с индексом:

app.controller('AppController', [ '$scope', function ($scope) { 

    $scope.offsetTopValues = []; 

}]); 

app.directive('directive', function ($window) { 

    return function($scope, element, attrs) { 

     $scope.offsetTopValues[index] = element[0].offsetTop; 
    }; 
}); 

Заранее спасибо :)

ответ

4

Насколько я знаю, директива не имеет индекс в представлении, как это. Однако то, что вы могли бы сделать что-то вроде:

<div directive index="0"></div> 
<div directive index="1"></div> 
<div directive index="2"></div> 

, а затем в JavaScript:

app.controller('AppController', [ '$scope', function ($scope) { 

    $scope.offsetTopValues = []; 

}]); 

app.directive('directive', function ($window) { 

    return function($scope, element, attrs) { 

     $scope.offsetTopValues[attrs.index] = element[0].offsetTop; 
    }; 
}); 
+0

Да :) ... Действительно, декларация философии углам главного, не так ли? В противном случае я должен использовать ng-repeat на мой взгляд. Спасибо, что работает: [link] (http://jsbin.com/izatEJOq/1) –

+0

Отлично! Рад, что смог помочь – mylescc

Смежные вопросы