L'intera idea di ambiti isolato è esattamente per evitare 'condividere' le cose tra genitore < -> ambiti secondari, in qualche modo proteggendoli dall'essere esposti e (involontariamente) modificati da altre direttive/controller.
Se davvero si vuole evitare che il campo di applicazione isolare e condividere la portata del genitore, provate questo:
Inizia rimuovendo la definizione della direttiva di applicazione (commentata sotto):
transclude: true,
/*scope: { title:'@zippyTitle' },*/
Poi posizionare il attributi (attrs
) dal elemento di direttiva sulla portata delle direttive:
scope.attrs = attrs;
Nota: in questo modo la proprietà attrs
sarà disponibile anche sull'ambito padre (Ctrl3).
E infine definire il titolo in base al scope.attrs
template: '<div>' +
'<div class="title">{{attrs.zippyTitle}}</div>' +
'<div class="body" ng-transclude></div>' +
'<a ng-click="hi();">hi</a>' +
'</div>',
jsFiddle: http://jsfiddle.net/NNDhX/1/
Non ho nemmeno guardato alle domande in cui non si sono preoccupati di modificare il contenuto in linea nella domanda. – jpsimons