Insertar directiva programáticamente angular

Así que básicamente quiero poder activar un evento y luego compilar una directiva e insertarme en una posición en el DOM. Actualmente tengo algo como esto

//controller
  angular.module('app').controller('MainCtrl', function ($scope, $compile) {

    $scope.$on('insertItem',function(ev,attrs){
      var el = $compile( "<chart></chart>" )( $scope );
      $scope.insertHere = el;
    });

  });


// directive
 angular.module('app')
  .directive('chart', function () {
    return {
      template: '<div>My chart</div>',
      restrict: 'E',
      link: function postLink(scope, element, attrs) {
        element.text('this is a chart');
      }
    };
  });

Puedo ver el objeto "el" con todo lo que necesito, pero no puedo insertarlo en el DOM ... ¿alguna pista?

Respuestas a la pregunta(1)

Su respuesta a la pregunta