title: Why 'controller as' can not access parent scope's property directly from child controller?
body: <p>I was about to covert my code to use <code>controller as</code> syntax after reading a few articles about it. However, I was surprised that using the <code>controller as</code> syntax one can no longer use parent controller's variable directly, what I mean is, in the old way (with $scope), I can do this:</p>
  
  <pre><code>// &lt;div ng-controller="ParentCtrl"&gt;
  //   &lt;div ng-controller="ChildCtrl"&gt;&lt;/div&gt;
  // &lt;/div&gt;
  // 
  app.controller('ParentCtrl', function ($scope) {
    $scope.x.title = 'Some title';
  });
  
  
  app.controller('ChildCtrl', function ($scope) {
    console.log($scope.x.title);
  });
  </code></pre>
  
  <p>But with <code>controller as</code>, I have to do this(thanks to this <a href="https://stackoverflow.com/questions/26647460/accessing-inherited-scope-with-controller-as-approach">question</a>):</p>
  
  <pre><code>// &lt;div ng-controller="ParentCtrl as pc"&gt;
  //   &lt;div ng-controller="ChildCtrl as cc"&gt;&lt;/div&gt;
  // &lt;/div&gt;
  // 
  app.controller('ParentCtrl', function () {
    this.x.title = 'Some title';
  });
  
  
  app.controller('ChildCtrl', function ($scope) {
    console.log($scope.pc.x.title);
  });
  </code></pre>
  
  <p>This is quite annoying because 1). I have to know that in the html page my parent controller is named as pc. 2). I can not do a bulk search and replace of <code>$scope =&gt; vm (or this)</code> because it won't work if the property is inherited.</p>
  
  <p>Can anyone please tell me what's the rationale behind this when <code>controller as</code> is introduced? </p>
  
  <p>Am I right if I use a lot of scope inheritance then I should avoid <code>controller as</code>? Or is scope inheritance considered harmful in general and should be discouraged?</p>