如何在打字稿中定义 angular1.3+ 控制器?

How to define angular1.3+ controller in typescript?

在 angular 的新版本中,您必须像这样定义控制器

var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
    $scope.firstName = "John";
    $scope.lastName = "Doe";
});

如何通过 TypeScript 定义此代码?

控制器将类似于:

class myCtrl
{
  constructor( $scope )
  {
    $scope.firstName = "John";
    $scope.lastName = "Doe";
  }
}

有了模块,它会是这样的

module myApp{

    export class myCtrl{

     static $inject = ["$scope"];

        constructor( $scope: any)
      {
        $scope.firstName = "John";
        $scope.lastName = "Doe";
      }
    }
}

$inject 方法指定 angular 将在 class 构造函数中注入的参数。就像我们示例中的 $scope 一样,您也可以注入服务等

现在您可以将其用作

angular.module('myApp', []).controller('myCtrl',myApp.myCtrl);