اليوم ، حاولت استخدام Rails كواجهة خلفية لتوفير بيانات تنسيق JSON. يتم استخدام AngularJS لمعالجة بيانات JSON على الواجهة الأمامية. عندما يحصل AngularJS على قطعة من نص HTML. إذا كنت تستخدم Data-NG-bind مباشرة ، يتم هروبها. يمكن استخدام Data-NG-Bind-HTML إلغاء الهروب.
ومع ذلك ، إذا كنت تستخدم Data-NG-bind-HTML مباشرة ، فستطالب بخطأ
نسخة الكود كما يلي:
خطأ: [$ SCE: غير آمن] محاولة استخدام قيمة غير آمنة في سياق آمن.
يجب تمييز شظايا HTML كثقة باستخدام $ sce.trustashtml (HTML_IN_STRING) قبل أن يتم تكوينها باستخدام Data-NG-Bind-HTML = "HTML_IN_STRING".
من بين جميع المقالات التي أخذتها من خلال واجهة برمجة التطبيقات أو من خلال الزاوية ، تحتوي كل مقالة على سمة HTML_Body وهي جزء HTML الذي يتم تقديمه بواسطة Markdown أو ORG.
بعد الحصول على بيانات JSON من خلال واجهة برمجة التطبيقات ، استخدم طريقة Angular.foreach التي توفرها AngularJS للاحتفال بـ HTML_Body من كل منشور وحفظ النتيجة كـ TrustedBody ، ثم استخدم Data-NG-Bind-HTML = "post.trustedbody" في HTML لإلغاء الهروب.
جزء 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.Fromson (response) ، function (post) {
post.trustedbody = $ sce.trustashtml (post.html_body) ؛
}) ؛
}) ؛
} ؛
$ scope.syncposts () ؛
}) ؛
جزء HTML
نسخة الكود كما يلي:
<div data-ng-bind-html = "post.trustedbody"> </viv>