วันนี้ฉันพยายามใช้ Rails เป็นแบ็กเอนด์เพื่อให้ข้อมูลรูปแบบ JSON AngularJS ใช้ในการประมวลผลข้อมูล JSON ที่ส่วนหน้า เมื่อ AngularJS ได้รับข้อความ HTML หากคุณใช้ data-ng-bind โดยตรงมันจะถูกหลบหนี การใช้ data-ng-bind-HTML สามารถยกเลิกการหลบหนีได้
อย่างไรก็ตามหากคุณใช้ data-ng-bind-HTML โดยตรงคุณจะแจ้งข้อผิดพลาด
การคัดลอกรหัสมีดังนี้:
ข้อผิดพลาด: [$ SCE: unsafe] พยายามใช้ค่าที่ไม่ปลอดภัยในบริบทที่ปลอดภัย
ชิ้นส่วน HTML จำเป็นต้องทำเครื่องหมายเป็นความน่าเชื่อถือโดยใช้ $ sce.trustashtml (HTML_IN_STRING) ก่อนที่พวกเขาจะสามารถยกเลิกการถอนได้โดยใช้ data-ng-bind-html = "HTML_IN_STRING"
ในบรรดาบทความทั้งหมดที่ฉันนำผ่าน API หรือผ่านเชิงมุมแต่ละบทความมีแอตทริบิวต์ HTML_BODY ที่เป็นชิ้นส่วน HTML ที่แสดงผลโดย markdown หรือ org
หลังจากได้รับข้อมูล JSON ผ่าน API ให้ใช้วิธี Angular.foreach ที่จัดทำโดย AngularJS เพื่อทำเครื่องหมาย html_body ของแต่ละโพสต์และบันทึกผลลัพธ์เป็นที่เชื่อถือได้แล้วใช้ data-ng-bind-html = "post.trustedbody" ใน HTML เพื่อยกเลิกการหลบหนี
ส่วน Angularjs
การคัดลอกรหัสมีดังนี้:
blog.controller ('postscontroller', ฟังก์ชั่น ($ 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.TrustEdBody = $ sce.trustashtml (post.html_body);
-
-
-
$ scope.syncposts ();
-
ส่วน HTML
การคัดลอกรหัสมีดังนี้:
<div data-ng-bind-html = "post.trustedbody"> </div>