我可以轻松注入$ scope和$ location和$ routeProvider之类的东西,为什么$ compileProvider与众不同?
基于this answer,我知道我必须指示angular不能为某些链接添加前缀(在我的情况下为sms),但是我无法在项目中应用答案。它说我应该添加这个:
angular.module('myModule', [], function ($compileProvider) {
$compileProvider.aHrefSanitizationWhitelist(/^\s*(https?|ftp|mailto|file):/);
});
但是Chrome控制台说:
“ angular.js:68未捕获的错误:[$ injector:unpr]未知提供者:
$ 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不是一个函数
最佳答案
那是因为您必须将其添加为配置:
angular.module('myModule').config(['$compileProvider',
function($compileProvider) {
$compileProvider.aHrefSanitizationWhitelist(/^\s*(https?|ftp|mailto|file):/);
}
]);