Ich habe Probleme beim Injizieren von $ kompilieren in der folgenden Direktive.
export class Element {
public link(scope:dirScopeInterface, element:any, attrs:ng.IAttributes, formCtrl:ng.IFormController) {
var attr = this.arrayJoiner(scope.standard, scope.attrs || {}, scope.ignore || {});
element.html(this.compiler(attr));
$compile(element.contents())(scope);
}
}
Im Moment ist es ein $ Kompilierung wirft undefiniert Fehler. Ich habe versucht mit
static $inject = ['$compile'];
Aber es verschwindet aus dem transpiled Skript aus irgendeinem Grund.
Here ist der vollständige Code verwendet.
Wie würde ich diese Anweisung mit eckigen dann registrieren, da der Konstruktor einen Parameter benötigt? Auch ich habe es so implementiert, wie Sie angegeben haben, aber ich bekomme eine $ Kompilierung ist kein Funktionsfehler. – Rockroxx
Angular verwendet die Abhängigkeitsinjektion, damit der Konstruktor sich selbst auflöst. Sie müssen den Zeiger auf den Controller verwenden, um zur privaten $ compile-Variablen zu gelangen: 'this. $ Compile' – devqon
Es sieht so aus: static $ inject = ['$ compile']; Konstruktor (private $ compile: ng.ICompileService) {} public link = (Bereich: dirScopeInterface, Element: any, attrs: ng.IAttributes, formCtrl: ng.IFormController) => { scope.tempForm = formCtrl; var attr = dieses.arrayJoiner (scope.standard, scope.attrs || {}, scope.ignore || {}); element.html (this.compiler (attr)); dies. $ Compile (element.contents()) (Bereich); } Angular wirft einen $ compile kein Funktionsfehler. – Rockroxx