[英]TypeError: $compile is not a function
I am writing a AngularJS directive in typescript. 我在打字稿中写了一个AngularJS指令。 Here is my code, in browser error thrown like this TypeError: $compile is not a function at compileComponent.js:14
这是我的代码,在浏览器中像这样抛出TypeError错误:$ compile不是compileComponent.js的函数:14
But TS compiler not showing any error. 但是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]);
}
Try to implemented it like that : 尝试像这样实现它:
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());
我弄错了,我忘了注入$ compile
dragdropModule.directive("compile", ["$compile", CompileComponent]);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.