Javascript 如何在Typescript中的Angular指令类中添加控制器

Javascript 如何在Typescript中的Angular指令类中添加控制器,javascript,angularjs,typescript,angular-directive,angular-controller,Javascript,Angularjs,Typescript,Angular Directive,Angular Controller,以下是迄今为止我在typescript中编写的angular指令类: 我的问题是如何为该指令添加控制器。我不想创建新的控制器类并将该控制器与控制器绑定。我想编写控制器并在typescript中的指令类内注入隔离作用域 module Sheet.Directive{ class InputControl implements ng.IDirective { restrict = 'A'; //require = 'ngModel'; templateUrl

以下是迄今为止我在typescript中编写的angular指令类:

我的问题是如何为该指令添加控制器。我不想创建新的控制器类并将该控制器与控制器绑定。我想编写控制器并在typescript中的指令类内注入隔离作用域

    module Sheet.Directive{
    class InputControl implements ng.IDirective {
    restrict = 'A';
    //require = 'ngModel';
    templateUrl = "../Templates/inputcontrol.html";



    constructor(private $location: ng.ILocationService) {
    }

    link = (scope: ng.IScope, element: ng.IAugmentedJQuery, attrs: ng.IAttributes, ctrl: any) => {
        console.log(this.$location);
    };

    static factory(): ng.IDirectiveFactory {
        const directive = ($location: ng.ILocationService) => new InputControl($location);
        directive.$inject = ['$location'];
        return directive;
    }
}

angular.module("SheetApp").directive("inputControl", InputControl.factory());
}

实际上,您可以声明将返回控制器函数的属性
controller
,如:

export class App {
  restrict='E';
  templateUrl='src/app.html';
  scope = {
    a : '@'
  }
  controller = ['$scope',($scope) => {
    console.log("this this controller",$scope.a);
  }];
}
以下是Plunker中的示例:(我使用了
@directive
技巧来更方便地声明指令