Heute habe ich versucht, Rails als Backend zur Bereitstellung von JSON -Formatdaten zu verwenden. AngularJS wird verwendet, um JSON -Daten am vorderen Ende zu verarbeiten. Wenn AngularJS ein Stück HTML -Text bekommt. Wenn Sie Daten-NG-B-Bind direkt verwenden, wird sie entkommen. Durch die Verwendung von Daten-ng-bind-html kann die Flucht stornieren.
Wenn Sie jedoch direkt daten-bind-html verwenden, fordern Sie einen Fehler auf
Die Codekopie lautet wie folgt:
Fehler: [$ sce: unsicher] versucht, einen unsicheren Wert in einem sicheren Kontext zu verwenden.
HTML-Fragmente müssen unter Verwendung von $ sce.trustashtml (html_in_string) als Vertrauen markiert werden, bevor sie mit daten-bind-html = "html_in_string" nicht abgelöst werden können.
Unter allen Artikeln, die ich durch die API oder durch Angular übernommen habe, verfügt jeder Artikel über ein HTML_BODY -Attribut, das ein HTML -Fragment ist, das von Markdown oder org gerendert wird.
Verwenden Sie nach dem Erhalten von JSON-Daten über die API die von AngularJS bereitgestellte Angular.foreach-Methode, um den HTML_BODY eines jeden Beitrags zu markieren und das Ergebnis als TrustedBody zu speichern, und verwenden Sie dann data-bind-html = "post.strustedBody" in HTML, um die Flucht abzusagen.
AngularJS -Teil
Die Codekopie lautet wie folgt:
Blog.controller ('postscontroller', function ($ scope, $ http, $ sce) {
$ scope.posts = [];
$ scope.yncposts = function () {
var request = $ http.get ('http:/localhost: 3000/posts.json');
Request.Success (Funktion (Antwort) {
$ scope.posts = angular.foreach (angular.fromjson (Antwort), Funktion (post) {
post.trustedbody = $ sce.trustashtml (post.html_body);
});
});
};
$ scope.yncposts ();
});
HTML -Teil
Die Codekopie lautet wie folgt:
<div data-bind-html = "post.trustedbody"> </div>