2016-05-27 7 views
1

Ich habe keine Probleme, Dinge wie $ Scope und $ location und $ routeProvider zu injizieren, warum ist $ compileProvider anders?

Basierend auf this answer, verstehe ich, dass ich eckig anweisen muss, bestimmte Links (SMS in meinem Fall) nicht zu präfixieren, aber ich kann die Antwort in meinem Projekt nicht anwenden. Er sagt, ich soll hinzufügen:

angular.module('myModule', [], function ($compileProvider) { 
    $compileProvider.aHrefSanitizationWhitelist(/^\s*(https?|ftp|mailto|file):/); 
}); 

Aber die Chromkonsole sagt:

"angular.js:68 Uncaught Error: [$injector:unpr] Unknown provider: $compileProviderProvider <- $compileProvider"

Die „Provider-Provider“, was ich denke, daß der wirkliche Name des Dienstes ist nur $ kompiliert (und dass Winkel auf der "Anbieter" Suffix Anheften:

angular.module('myModule', [], function ($compile) { 
    $compile.aHrefSanitizationWhitelist(/^\s*(https?|ftp|mailto|file):/); 
}); 

Aber dann vorhersagbar, ich denke, ich bekomme:

angular.js:13550 TypeError: $compile.aHrefSanitizationWhitelist is not a function

Antwort

5

Das ist, weil Sie es als Config hinzufügen:

angular.module('myModule').config(['$compileProvider', 
 
    function($compileProvider) { 
 
    $compileProvider.aHrefSanitizationWhitelist(/^\s*(https?|ftp|mailto|file):/); 
 
    } 
 
]);

+0

Dank aber kein Glück. Ich bekomme "angular.js: 68 Uncaught Fehler: [$ injector: modulerr] Fehler beim Instanziieren von Modul mytodoApp aufgrund: TypeError: $ compileProvider.urlSanitizationWhitelist ist keine Funktion" (das einzige, was ich in Ihrem Vorschlag geändert habe, war myModule zu mytodoApp (was ist mein App-Name). – user1272965

+0

haben Sie versucht "AhrefSanitizationWhitelist"? Weil die UrlSanitizationWhiteList-Methode entfernt und imgSrcSanitizationWhitelist und ahrefSanitizationWhitelist – Oliver

+0

Vielen Dank.Das hat den Trick.Mein wirkliches Problem war die Syntax Verkettung der Konfiguration um meine anderen Konfigurationen. – user1272965

Verwandte Themen