 <p><strong>Update</strong></p> <p>You could build a separate directive which dynamically compiles the required directive:</p> <pre><code>app.directive('dynamicDirective', function($compile) { return { restrict: 'A', replace: true, scope: { dynamicDirective: '=' }, link: function(scope, elem, attrs) { var e = $compile("&lt;div " + scope.dynamicDirective + "&gt;&lt;/div&gt;")(scope); elem.append(e); } }; }); </code></pre> <p>It can be used as follows (in this sample <code>someDirective</code> is defined on the scope and has the name of the required directive):</p> <pre><code>&lt;div dynamic-directive="someDirective"&gt;&lt;/div&gt; </code></pre> <p><a href="http://plnkr.co/edit/u5moX3RkRavX8gqFlc7J?p=preview" rel="nofollow">Here is a sample</a></p>