2015-06-09 1 views
3

Я начал изучать AngularJS сегодня, и до сих пор у меня все хорошо. Но я столкнулся с проблемой, и я не могу найти ответа. Я пытаюсь напечатать строку html <p>Text</p> в формате Text. До сих пор Angular печатает его как обычный <p>Text</p>.Анализ HTML из JSON в ng-repeat

Мой код выглядит следующим образом:

JS

var blogApp = angular.module('blogApp', []); 

blogApp.controller('blogPostsCtrl', function($scope, $http) { 
    $http.get('wp-json/posts').success(function(data) { 
     $scope.posts = data; 
     $scope.postsLoaded = 'visible-lg'; 
    }); 
}); 

HTML

<article id="post-{{post.ID}}" <?php post_class(); ?> itemscope itemprop="blogPost" itemtype="http://schema.org/BlogPosting" ng-repeat="post in posts" ng-class="postsLoaded"> 

    <h2 class="entry-title" itemprop="headline"><a title="Link do {{post.title}}" rel="bookmark" href="{{post.link}}">{{post.title}}</a></h2> 

    <div class="entry-content"> 
     <img ng-src="{{post.featured_image.source}}"> 
     {{post.content}} 
    </div> 
    <footer class="entry-footer"> 
     <ul class="categories"><li ng-repeat="category in post.terms.category"><a href="{{category.link}}">{{category.name}}</a></li></ul> 
    </footer> 
</article> 

Моя проблема с {{post.content}}. Я хотел попробовать ng-bind-unsafe, но он был удален. Я также пробовал ng-bind-html="post.content", но это не сработало.

Я использую Angular 1.4.

ответ

7

Вы ищете ngBindHtml. Например, с контентом вы бы использовать это:

<div ng-bind-html="post.content"></div> 

Вычисляет выражение и вставляет результирующий HTML в элемент в безопасном режиме. По умолчанию результирующий HTML-контент будет дезинфицирован с помощью службы $ sanitize. Чтобы использовать эту функциональность, убедитесь в том, что $ sanitize доступен, например, включив ngSanitize в зависимости вашего модуля (не в ядре Angular). Чтобы использовать ngSanitize в зависимостях вашего модуля, вам нужно включить «angular-sanitize.js» в ваше приложение.

+0

Боюсь, что нет. Я попытался использовать его, как я сказал в своем вопросе, но он не работает. –

+0

Можете ли вы показать, что он не работает с плункером? –

+0

Ошибка автора, я не включил 'ngSanitize' (как видно из моего кода) ;-) Работает сейчас, спасибо! –

Смежные вопросы