As long as you don't change your code the "as" syntax doesn't make any difference.
If you changed ParentController
to
this.grid = {
$index: null,
view: [],
data: []
};
then you would still need a $scope
reference in your ChildController
, but you add another property:
.controller('ChildController', ['$Scope',
function ($Scope) {
$Scope.parent.grid.$index = null;
$Scope.parent.grid.view = [];
$Scope.parent.grid.data = [];
As you can see it's not only more complicated, but you also couple the code to the HTML: If you decide to change your HTML to ParentController as someController
your ChildController
breaks.
So even with the "as" syntax you want grid
to be a property of $scope
.