ディレクティブ内の値が外部から変更されたときに取得しようとしていますが、scope.$watch または attrs.$observe のいずれでも機能しないようです。
ここにフィドルがあります。
angular.module('zippyModule', [])
.directive('elem', function(){
return {
restrict: 'E',
transclude:true,
template:"Directive: <span ng-repeat='i in values'>{{i}} </span>",
scope: { values:'=zippyTitle' },
link: function(scope, element, attrs) {
attrs.$observe ('zippyTitle',function(newValue){
console.log (scope.values);
});
scope.$watch ('values',function(newValue){
console.log (scope.values);
});
}
}
});