// model tree panelApp.directive('batModelTree', function($compile) { return { restrict: 'E', terminal: true, scope: { val: '=', edit: '=', inspect: '=' }, link: function (scope, element, attrs) { // this is more complicated then it should be // see: https://github.com/angular/angular.js/issues/898 element.append( '
'); $compile(element.contents())(scope.$new()); } }; });