title: Why is my scope property not visible in the view?
body: <p>I use TypeScript to build my Angular application.</p>
  
  <p>Here's my routing:</p>
  
  <pre><code>app.config(["$routeProvider", ($routeProvider: ng.route.IRouteProvider) =&gt; {
      $routeProvider.
          when('/Movie/:imdb', {
              templateUrl: '/Partials/Movie/Details.html',
              controller: 'MovieController',
              controllerAs: 'vm',
          }).
          otherwise({
              redirectTo: '/Rent'
          });
  }]);
  </code></pre>
  
  <p>Here is my controller:</p>
  
  <pre><code>module MovieApp {
      export interface IMovieControllerScope extends ng.IScope {
          movie: Movie;
      }
  
      export interface RouteParams extends ng.route.IRouteParamsService {
          imdb: string;
      }
  
      export class MovieController {
          public static $inject = ['$scope', '$routeParams', 'MovieService'];
  
          constructor(
              private $scope: IMovieControllerScope,
              private $routeParams: RouteParams,
              private MovieService: MovieService) {
  
              var imdb = $routeParams.imdb;
              MovieService.GetMovieByImdb(imdb).then(response =&gt; {
                  this.$scope.movie = response;
              });
  
          }
  
      }
  
      app.controller("MovieController", MovieApp.MovieController);
  } 
  </code></pre>
  
  <p>And this is my view</p>
  
  <pre><code>&lt;div&gt;
      Movie title... {{vm.movie.Title}}
  &lt;/div&gt;
  </code></pre>
  
  <p>The only thing I see is 'Movie title... '. I just can't figure out how to get this work.</p>
  
  <p>I've tried to remove the <code>controllerAs</code> line in the routings and then remove <code>vm.</code> in my view, but still with no success.</p>
  
  <p>What am I doing wrong and how to fix this?</p>
  
  <p>EDIT:</p>
  
  <p>This is what TypeScript makes of my controller:</p>
  
  <pre><code>var MovieApp;
  (function (MovieApp) {
      var MovieController = (function () {
          function MovieController($scope, $routeParams, MovieService) {
              var _this = this;
              this.$scope = $scope;
              this.$routeParams = $routeParams;
              this.MovieService = MovieService;
              var imdb = $routeParams.imdb;
              MovieService.GetMovieByImdb(imdb).then(function (response) {
                  _this.$scope.movie = response;
              });
          }
          MovieController.$inject = ['$scope', '$routeParams', 'MovieService'];
          return MovieController;
      })();
      MovieApp.MovieController = MovieController;
  
      app.controller("MovieController", MovieApp.MovieController);
  })(MovieApp || (MovieApp = {}));
  </code></pre>