I am setting up a site in angular along with requirejs using typescript. I got it working to a point where i can load my controllers asynchronously and set a variabele in the scope which will hold my controller:
///<reference path="./../typings/tsd.d.ts" />
import App = require("../Start");
App.application.app.register.controller("AppController",($scope: ng.IScope) => {
    $scope["vm"] = new AppController($scope);
});
class AppController {
    public test: string = "tedast";
    constructor(scope: ng.IScope) {
    }
}
which compiles to javascript like so:
define(["require", "exports", "../Start"], function (require, exports, App) {
    App.application.app.register.controller("AppController", function ($scope) {
        $scope["vm"] = new AppController($scope);
    });
    var AppController = (function () {
        function AppController(scope) {
            this.test = "tedast";
        }
        return AppController;
    })();
});
And in my viewtemplate i can access the variabele test like so
{{ vm.test }}
As you can see i have to prefix everything with "vm." and it is starting to feel a bit inefficient. I would like to know if it is possible to just bind the controller in typescript to the view directly so i dont have to save it in the scope and prefix it with vm.
i have tried to simply:
<div ng-controller="AppController">
      {{ test }}
</div>
But that throws an error that it cant find appcontroller once my view loads.
                        
I know its Try registering your controller after AppController class.