Ho problemi nell'iniettare $ compilare nella seguente direttiva.
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);
}
}
Al momento il lancio di $ compilazione è un errore non definito. Ho provato a utilizzare
static $inject = ['$compile'];
Ma per qualche motivo scompare dallo script transpiled.
Here è il codice completo utilizzato.
Come registrare questa direttiva con angolare, in quanto il costruttore richiede un parametro? Inoltre ho implementato il modo in cui hai specificato, ma sto ottenendo un $ compilare non è un errore di funzione. – Rockroxx
Angular utilizza l'iniezione delle dipendenze, quindi il costruttore si risolverà da solo. Devi usare il puntatore sul controller per ottenere la variabile $ compile privata: 'this. $ Compile' – devqon
Sembra che il seguente: static $ inject = ['$ compile']; Costruttore (private $ compile: ng.ICompileService) {} link pubblico = (scope: dirScopeInterface, elemento: any, attrs: ng.IAttributes, formCtrl: ng.IFormController) => { scope.tempForm = formCtrl; var attr = this.arrayJoiner (scope.standard, scope.attrs || {}, scope.ignore || {}); element.html (this.compiler (attr)); . $ Compile (element.contents()) (scope); } Angolare genera un $ non un errore di compilazione. – Rockroxx