오늘 저는 JSON 형식 데이터를 제공하기 위해 레일을 백엔드로 사용하려고했습니다. AngularJS는 프론트 엔드에서 JSON 데이터를 처리하는 데 사용됩니다. AngularJS가 HTML 텍스트를 얻을 때. Data-NG-Bind를 직접 사용하면 탈출됩니다. Data-NG-Bind-HTML을 사용하면 탈출을 취소 할 수 있습니다.
그러나 Data-NG-Bind-HTML을 직접 사용하면 오류가 발생합니다.
코드 사본은 다음과 같습니다.
오류 : [$ SCE : 안전하지 않음] 안전한 상황에서 안전하지 않은 가치를 사용하려고 시도합니다.
HTML 조각은 data-ng-bind-html = "html_in_string"을 사용하지 않기 전에 $ sce.trustashtml (html_in_string)을 사용하여 신뢰로 표시해야합니다.
내가 API를 통해 또는 Angular를 통해 취한 모든 기사 중에서, 각 기사에는 Markdown 또는 Org로 렌더링 된 HTML 조각 인 HTML_Body 속성이 있습니다.
API를 통해 JSON 데이터를 얻은 후 Angular.Foreach 메소드를 사용하여 각 게시물의 HTML_Body를 표시하고 신뢰할 수있는 바디로 결과를 저장 한 다음 HTML에서 Data-NG-Bind-HTML = "Post.TrustedBody"를 사용하여 탈출을 취소하십시오.
Angularjs 부분
코드 사본은 다음과 같습니다.
blog.controller ( 'postscontroller', function ($ scope, $ http, $ sce) {
$ scope.posts = [];
$ scope.syncposts = function () {
var request = $ http.get ( 'http :/localhost : 3000/posts.json');
request.success (함수 (응답) {
$ SCOPE.POSTS = Angular.Foreach (Angular.FromJson (응답), 함수 (post) {
post.trustedbody = $ sce.trustashtml (post.html_body);
});
});
};
$ scope.syncposts ();
});
HTML 부분
코드 사본은 다음과 같습니다.
<div data-ng-bind-html = "post.crustedbody"> </div>