Template directive calling another directive

I am developing a multi data app that is using angular.js and d3.js. I am having a hard time to include the <svg> into my scope.

What is happening now is that the directive ngTests is being loaded before the ngRepeat executes it's methods.

I am putting the fiddle here so you guys can have a better idea.

jsfiddle

<ng-chart></ng-chart>

PS: I can get the td id on my ngTests directive, but it doesn't update at all <td ng-tests id="histogram{{$index}}".

If I change this line to <td ng-tests id="histogram">, use histogram as ID on my directive and change my ngTests directive to read only "#histogram" it creates my svg 6 times on the first table of my ngRepeat, which is not the result I am expecting.

Thank you.

Do two things. In your ngChart directive you have the index attribute specified like index="index" but it needs to be index="{{$index}}". Then, to read the attribute value from the other directive, instead of accessing the attribute directly like attrs.index you should be using attrs.$observe more like the following:

    attrs.$observe('index', function(observedIndex) {
        console.log('observedIndex:', observedIndex);
    });

This way when the index is changed (e.g. by another directive) you get notified and can update the element's text. I forked the fiddle and got it working here.