2013-06-06 9 views
9

$sanitize 서비스 tells me that

(화이트리스트)에서 모든 안전 토큰을 살균.

는 난 단지 HTML의 더 작은 하위 집합을 표시 할 ( em, p, astrong 즉). 핵심 JavaScript를 수정하지 않고도 $service 화이트리스트를 쉽게 수정할 수있는 방법이 있습니까?

+0

복사 그것에서 자신의하여 지침의 소스 만들기) – Guillaume86

+0

나는 (그리고 슬프게도 나는) 각-자원과 그것을 했어 수 있지만 난에서 분기 않도록하려면 기본 파일을되도록 많이 만듭니다. –

+0

해결 방법을 찾으셨습니까? 또는 당신은 자신의 것을 만들었습니까? – user3319803

답변

4

$ delegate (언급 한 바와 같이) 다른 라이브러리를 사용할 수 있습니다. 나는 허용 할 태그를 선택할 수 있기 때문에 개인적으로 내 프로젝트에 sanitizeHtml을 사용합니다. 셋업 :

4

원본 파일을 변경하지 않도록 $ sanitize 서비스를 꾸밀 수 있습니다. 다음은 $ sanitize 내부에서 일어나는 일들을 기록하는 예제입니다. 원치 않는 요소를 필터링하는 데 필요한 것을 할 수 있습니다.

var app = angular.module("app", ["ngSanitize"]); 

app.config(function($provide){ 
    $provide.decorator("$sanitize", function($delegate, $log){ 
     return function(text, target){ 

      var result = $delegate(text, target); 
      $log.info("$sanitize input: " + text); 
      $log.info("$sanitize output: " + result); 

      return result; 
     }; 
    }); 
}); 

데코레이터 내부에서 $ delegate는 $ santize를 참조합니다. $ delegate (text, target)를 호출 한 다음 결과를 반환하기 전에 입력에서 원하는 것을 필터링합니다.