코드를 강조하는 지시문을 만들었지 만 브라우저에서 강조 표시하기 전에 해당 코드를 수정하고있는 것처럼 보입니다.AngularJS 브라우저 이스케이프 문자 금지
다음과 같은 현상이 발생합니다.
나는 my-compile
이라는 지시어를 가지고 있는데, 이는 기본적으로 전달 된 값을 요소의 innerHTML에 넣고 $compile
을 실행합니다.
예 :
<span my-compile="details"></span>
그리고 세부 사항은 것 같은 뭔가 :
here are some details and here's a <code lang="java">first = temp & 0xFF &</code>
여기에 중요한 지시어 코드 (이 링크 기능에)입니다 : 그래서
element.html(details); $compile(element.children())(scope);
가 $compile
은 <code>
지시어를보고 코드에 건네줍니다. 제외하고, 지시어, 여기에 문제의의 <code>
지시어는 내용을 얻기 위해 element.html()
을 수행하고이 반환됩니다
first = temp & 0xFF &
문제는 첫째 & 이스케이프되지 않았기 때문에 코드가, 지금은 잘못된 것입니다.
<code>
지시어를 비슷한 방식으로 계속 사용할 수 있지만 & 부호가 그대로 유지됩니다 (>와 < 표지판도 함께 발생한다고 가정).
내 유일한 아이디어는 조회 서비스 였지만 다소 지저분하지만 두 번째로 브라우저의 DOM에 도달하면 내 유일한 옵션이지만 이스케이프 처리 된 &은 두 번 이스케이프 처리되지 않습니다.
나는 또한 Angular/jQuery sanitization 것으로 생각하면 element[0].innerHTML
을 사용해 보았지만 실제로는 그렇지 않습니다.
나는 문자 그대로 '&'이'& amp;'가 될 것이므로'.text()'검색으로 디코딩된다. 도와 주셔서 감사합니다! :디 – Skinner927