我可以毫不费力地注入(inject) $scope 和 $location 以及 $routeProvider 之类的东西,为什么 $compileProvider 不同?
基于 this answer ,我知道我必须指示 angular 不要为某些链接添加前缀(在我的例子中是 sms),但我不能在我的项目中应用答案。它说我应该添加这个:
angular.module('myModule', [], function ($compileProvider) {
$compileProvider.aHrefSanitizationWhitelist(/^\s*(https?|ftp|mailto|file):/);
});
但是 chrome 控制台说:
"angular.js:68 Uncaught Error: [$injector:unpr] Unknown provider: $compileProviderProvider <- $compileProvider"
那个“provider-provider”的东西让我认为服务的真实名称只是 $compile(并且那个 Angular 是在“provider”后缀上添加的:
angular.module('myModule', [], function ($compile) {
$compile.aHrefSanitizationWhitelist(/^\s*(https?|ftp|mailto|file):/);
});
但是,不出所料,我猜,我得到:
angular.js:13550 TypeError: $compile.aHrefSanitizationWhitelist is not a function
最佳答案
那是因为你必须将它添加为配置:
angular.module('myModule').config(['$compileProvider',
function($compileProvider) {
$compileProvider.aHrefSanitizationWhitelist(/^\s*(https?|ftp|mailto|file):/);
}
]);
关于javascript - 使用 $compileProvider 避免不安全链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37491931/