过滤服务从Angularjs 1.0.3更改为1.0.7

时间:2013-09-03 23:46:46

标签: angularjs angularjs-filter

举个例子:http://jsfiddle.net/lesouthern/y3pXn/ 对于此过滤器:

.filter('telanchor',function() {
    return function(s) {
        var rString = '';
        if(typeof s !== 'undefined' && angular.isString(s)) {
            rString = 'tel:+' + s.replace(/\D/g,'');
        }
        return rString;
    }
})

它在Angular 1.0.3中正确过滤到此字符串:

    <a href="tel:+5103381927">Tel Number</a>

在1.0.7中,它生成:

    <a href="unsafe:tel:+5103381927">Tel Number</a>

我怎么不生成这个'不安全'字符串?

谢谢

1 个答案:

答案 0 :(得分:1)

Angular似乎认识到你的href是不安全的。 在配置块中尝试这样的事情:

angular.module('module').config(['$compileProvider', function ($compileProvider)
{
      $compileProvider.urlSanitizationWhitelist(/^\s*(https?|ftp|mailto|file|tel):/);
      /* The regular expression will match your "unsafe"
        link format and add it to the whitelist */
}]);

以下是更详细的说明:unsafe link in angular