Angular:

http://angularjs.org/

HTML

<div ng-controller="MyCtrl">
  <div screen>
    <div component>
        <div widget>
            <button ng-click="widgetFunction()">Woo Hoo</button>
        </div>
    </div>
</div>
</div>

JavaScript

var myApp = angular.module('myApp',[])

.directive('screen', function() {
    return {
        scope: true,
        controller: function() {
            this.doSomethingScreeny = function() {
                alert("screeny!");
            }
        }
    }
})

.directive('component', function() {
    return {
        scope: true,
        controller: function($element) {
            this.componentFunction = function() {
                $element.controller('screen').doSomethingScreeny();
            }
        }
    }
})

.directive('widget', function() {
    return {
        scope: true,
        controller: function($scope, $element) {
            $scope.widgetFunction = function() {
                $element.controller('component').componentFunction();
            }
        }
    }
})

function MyCtrl($scope) {
    $scope.name = 'Superhero';
}