There are many ways to do what you are asking.
One way is to put the data on the root scope by injecting $rootScope or using $scope.$root. That is frowned upon.
Another way is to explicitly work with the data on the parent scope like this:
$scope.$parent.foo = 'bar';
That's also somewhat frowned upon.
Another way is for the parent to create an object that will hold data that is accessed when the scope hierarchy is traversed. The controller for the parent could do this:
$scope.holder = {};
The controllers for any descendant scopes could then do this:
$scope.holder.foo = 'bar';
and
var foo = $scope.holder.foo;
This is really just taking advantage of the dot that Eric Eslinger suggested. It works when the descendant scopes don't have a property named "holder" and traversing the hierarchy finds it in an ancestor scope.
Another way is to use a shared service that is injected into all the controllers that need it.