Kind of an old thread, but I am experiencing this problem now with 1.1.5.
I have a similar structure I believe:
<component-1 transclude>
<ng-repeat>
<component-2 transclude>
<div ng-click="$parent.toggle()">
So, the idea is that component-2 has a scope.toggle() function that the nested element should be able to invoke. However, the scopes are created with the following hierarchy:
> component-1
> ng-repeat
> component-2
> div
So, the surprise is that component-2 and the div w/ ng-click are sibling scope and not parent-child. I assume that since the ng-repeat and component-2 are both transcluding, the ng-repeat has first crack at it and assigns the same scope to both component-2 and the div; then component 2 has its opportunity and carves out a scope for itself.
I'm not sure if that is the right description, but my main question is the same. How can I restore the scope hierarchy I was expecting?