Avoid circular dependencies with AngularJS Directives

A problem you may encounter if you try to implement my previous example in your own code, is that your implementation of templateRepository cannot (apparently) make use of $templateCache, because angular will throw a circular dependency error.
To avoid this, you can inject the $injector service into the templateRepository, and defer the dependency resolution until you make the call.
Something like this: