Angular - 在每个输入上使用$ sanitize

时间:2016-05-28 14:40:24

标签: angularjs

在我的服务器端,我清理了所有内容。

在我的Angular app客户端,我在某些情况下做过同样的事情,例如然而,我现在正在考虑不应该将它应用于每个输入字段吗?

所以我看过$sanitize('some string')但是有没有办法在一些顶级应用程序级别应用它,而不必为每个实例输入字段输入?

(假设这是明智之举 - 如果不热衷于听取建议)。

感谢。

1 个答案:

答案 0 :(得分:4)

您可以创建一个您将调用的指令"输入",然后它将应用于您应用的所有输入。

在指令中,您可以向$ ngModel添加解析器,以便在值更改时自动应用$ sanitize。

看起来像这样:

myApp.directive('input', function($sanitize) {
  return {
    restrict: 'E',
    require: '?ngModel',
    link: function (scope, element, attrs, ngModel) {
      if(ngModel !== undefined){
        ngModel.$parsers.push(function(value){
          return $sanitize(value);
        });
      }
    }
  };
});