Transcluyendo ng-click en una directiva

Estoy construyendo una directiva AngularJS. Quiero que la directiva contenga otros contenidos que tengan un clic ng dentro de ella. El botón resultante no hace nada cuando se hace clic. Aquí hay una versión simplificada del código que probé:

(HTML)

<div ng-app="someapp">
    <div ng-controller="Ctrl1">
        <h2>Example</h2>
        <my-dir data-x="1">
            <button ng-click="refresh()" id="refresh1">Refresh</button>
        </my-dir>
        <my-dir data-x="2">
            <button ng-click="refresh()" id="refresh2">Refresh</button>
        </my-dir>
    </div>
</div>

(JavaScript)

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

app.controller('Ctrl1', function($scope){ });

app.directive('myDir', function(){
    return {
        restrict: 'E',
        scope: {},
        template: '<div><p>Directive contents:</p><div ng-transclude></div></div>',
        transclude: true,
        link: function(scope, element, attrs){
            $scope.y = attrs.x+1;
            scope.refresh = function(){
                console.log("Refresh Called, y = ", $scope.y);
            }
        }
    };
});

¿Cómo puedo cambiarlo para que el botón active la función $ scope.refresh ()?

Aclaración adicional:

Necesito información de objeto local para la directiva (puede haber varios de esta directiva en el controlador único), por lo que creo un nuevo ámbito.

Respuestas a la pregunta(2)

Su respuesta a la pregunta