2017-06-21 8 views
0

私はtypescriptでAngularJS命令を書いています。ここでは、この TypeError例外のようなスローブラウザのエラーで私のコードは、次のとおりです。$コンパイルはcompileComponent.jsでは関数ではありません:14

しかし、TSコンパイラがエラーを示していません。

module dashboard { 
    function CompileComponent($compile): ng.IDirective { 
    console.log('Compiler s--'); 

    return { 
     replace: false, 
     restrict: 'EA', 
     link: (scope: ng.IScope, element: ng.IAugmentedJQuery, attrs: ng.IAttributes, ngModel: any) => { 
     scope.$watch(
      function (scope) { 
      return scope.$eval(attrs.compile); 
      }, 
      function (value) { 
      element.html(value); 
      $compile(element.contents())(scope); 
      } 
     ); 
     } 
    } 
    } 
    var dragdropModule = angular.module('dashboard'); 
    dragdropModule.directive("compileComponent", [CompileComponent]); 
} 

答えて

1

そのようにそれを実装しよう:

class CompileComponent implements ng.IDirective { 
     restrict = 'A'; 
     require = 'ngModel'; 
     templateUrl = 'myDirective.html'; 
     replace = true; 
enter code here 
    link = (scope: ng.IScope, element: ng.IAugmentedJQuery, attrs: ng.IAttributes, ctrl: any) => { 
// do something 
} 

static factory(): ng.IDirectiveFactory { 
    const directive = ($compile: ng.ICompileService) => new CompileComponent($compile); 
    directive.$inject = ['$compile']; 
    return directive; 
} 
     constructor(private $compile: ng.ICompileService) { 
     } 
    } 
    app.directive('compileComponent', CompileComponent.factory()); 
0

私は私が間違っているのものを持って、私は$

dragdropModule.directive("compile", ["$compile", CompileComponent]); 
でコンパイル注入を忘れ
関連する問題