我正在尝试将Angular与一系列应用程序结合使用,并且每个链接都是一个链接,可用于更详细地查看应用程序(apps/app.id):
apps/app.id
<a id="{{app.id}}" href="apps/{{app.id}}" >{{app.name}}</a>
每次我点击其中一个链接时,Chrome都会将该网址显示为
unsafe:chrome-extension://kpbipnfncdpgejhmdneaagc.../apps/app.id
哪里unsafe:来的?
unsafe:
您需要使用正则表达式将URL协议显式添加到Angular的白名单中。只有http,https,ftp并mailto默认启用。unsafe:使用诸如的协议时,Angular会将未列入白名单的URL 作为前缀chrome-extension:。
http
https
ftp
mailto
chrome-extension:
将chrome-extension:协议列入白名单的好地方是在模块的配置块中:
var app = angular.module( 'myApp', [] ) .config( [ '$compileProvider', function( $compileProvider ) { $compileProvider.aHrefSanitizationWhitelist(/^\s*(https?|ftp|mailto|chrome-extension):/); // Angular before v1.2 uses $compileProvider.urlSanitizationWhitelist(...) } ]);
当需要使用诸如file:和的协议时,同样的步骤也适用tel:。
file:
tel:
请参阅AngularJS $ compileProvider API文档以获取更多信息。