Edit in JSFiddle

var app = angular.module('AngApp', []);

app.controller('MainCtrl', function($scope) {
    <!-- 기본 컨트롤러 -->
  $scope.name = 'World';
});


app.controller('myDirectiveController', function($scope) {
  $scope.open = function(){        
    alert('이거 실행되면 안된다. 새로 생성된 dialogCntl의 scope가 실행되야하기 때문이다.');
  };
});

app.controller('dialogCntl', function($scope) {
  $scope.open = function(){        
    alert('정상적으로 생성 및 생성된 엘리먼트안의 ng-click도 정상 작동');
  };
});

app.directive('myDirective', function ($compile) {
    <!-- 디렉티브 해당 엘리먼트 기능 추가 -->
  return {
    restrict : 'E',
    controller : 'myDirectiveController',
    link : function(s, e, a) {
      var newElement = angular.element('<div ng-controller="dialogCntl">' + '<a ng-click="open()" tabindex="-1" href="#">Result Alert!!</a></div>');
        <!-- 엘리먼트를 생성하면서 ng-controller와 ng-click 액션도 함께 담아 생성했다.-->
      e.append(newElement);
      $compile(newElement)(s); 
    }
  }
})
<div ng-app="AngApp">
    <div ng-controller="MainCtrl">
    <p>Hello {{name}}!</p>
    
    <my-directive></my-directive>
    </div>
</div>