title: Changing scope in controller initialization not working for directive
body: <p>I have this directive:</p>
  
  <p><div class="snippet" data-lang="js" data-hide="false">
  <div class="snippet-code">
  <pre class="snippet-code-js lang-js prettyprint-override"><code>angular.module("app", [])
    .directive("myDirective", myDirective);
  
  function myDirective() {
    return {
      template: '{{vm.numbers}}',
      scope: {
        numbers: '='
      },
      controller: MyController,
      controllerAs: 'vm',
      bindToController: true,
    };
  }
  
  function MyController($timeout) {
    var vm = this;
    vm.numbers.push(3);
    $timeout(function() {
       vm.numbers.push(4);
    });
  }</code></pre>
  <pre class="snippet-code-html lang-html prettyprint-override"><code>&lt;script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js"&gt;&lt;/script&gt;
  
  &lt;div ng-app="app"&gt;
    &lt;my-directive numbers="[1,2]"&gt;&lt;/my-directive&gt;
  &lt;/div&gt;</code></pre>
  </div>
  </div>
  </p>
  
  <p>Why 3 is not being pushed to the array?</p>