This modal dialog shows how a model can be shared between the three separate views: header, contents, and footer.

Each view has its own controller (in this case, an instance of a minimal SharedStateController). The controller instances each get injected with a sharedState service, which only exports a single, shared object. This shared object is then assigned to each controller instance's injected $scope. As a result, each of the checkboxes in this examples have a ng-model="state.a" attribute.

Please note that the providing and consuming the shared state is not handled by core-layout itself, but rather through AngularJS' standard ways of doing this when scopes that need to communicate are not children of each other and you don't want to litter the $rootScope.