javascript - 使用 $compileProvider 避免不安全链接

标签 javascript angularjs

我可以毫不费力地注入(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/

相关文章:

javascript - 单击事件期间更改的复选框值未被表单数据拾取

javascript - jQuery on click 在控制台中执行时有效,但在页面加载时无效

javascript - Angularjs函数从另一个函数调用并等待其响应

javascript - 无法访问从 ng-repeat 调用的函数中的用户输入

javascript - 如何添加动态添加字段的值

javascript - 使用 Protovis 的对数条形图

javascript - 将参数传递给没有 Controller 的指令

angularjs - 无法让我的 angularJS 应用程序与 phantomJS 一起使用

javascript - 如何从响应式 Canvas 获取图像?

angularjs - 在最小输入字符集后显示 ui-select 下拉列表