Accessing parent scope from directive
Using $parent is an anti-pattern and sign of bad architecture. What if you code changes together with your parent chain - it will instantly break your code. 

Also, have you thought about how you are going to test it?



To have a clean readable code, you want someone looking at it immediately see the meaning. What is the meaning of this object? -

ng-model = "$parent.$parent.$parent.type"


Would you not rather see

ng-model = "selectedItem"


or something more concrete like

ng-model = "myCar"




Naming something "current" makes me wonder what it is. From your code, I have no idea, so it forces me to spend time on looking around and getting clues, for what should be made clear right up front.