You are using isolated scope for you directive. So you canot access to the scope controller. You could comunicate with the controller using a service or using events.
If you want to be able to access to the controller scope directly from your directive, you have to use shared scope.
I hope that it helps. You can find more information about scopes in directives Here.
-----------EDIT----------------
I am not sure what you want to do, but in the next code you can see as using share scope, you can acces the data from de parent and making the view refresh with the new data.
angular.module('app').directive('scrollStop', function() {
return {
restrict: 'A',
scope: false,
link: function (scope, element, attrs) {
var $page = angular.element(window)
var $el = element[0]
var last_top = $el.getBoundingClientRect().top - 60;
$page.bind('scroll', function () {
var current_top = $el.getBoundingClientRect().top - 60;
if (last_top >= 0 && current_top < 0) {
// HERE!
scope.$parent.header=scope[attrs.scrollStop].header;
scope.$parent.$apply();
}
last_top = current_top;
})
}
}
});