例えば「chrome-extension:」のような独自のプロトコルを埋め込もうとすると、Angularさんは未知のプロトコルとして、自動的に害のないセーフティーな文字列に置換してくれる。
しかしこういった外部アプリケーションをコールするような文字列を意図的に埋め込みたい場合、この機能はとても邪魔になる。
これを回避する方法は下記の通り。
「$compileProvider」を用いてhref属性に含められるプロトコルのホワイトリストを再定義してやればOK。
// 例えばchrome-extensionプロトコルを埋め込みたい場合は下記の通り。 app.config(['$compileProvider', function($compileProvider) { $compileProvider.aHrefSanitizationWhitelist(/^\s*(https?|ftp|mailto|chrome-extension):/); }]);
これでリンク属性に独自のプロトコルを埋め込むことが出来るようになる。