0

I've got simple ng-repeat:

<section id="content" class="container" ng-app="myApp" ng-controller="postsController">
    <div class="row">            

        <div class="col s12 xl6" ng-repeat="post in posts | filter:searchText" on-finish-render="done">
            <div class="card">
                <div class="card-image">
                  <img ng-src="{{post.Thumbnail}}" alt="image">
                  <span class="card-title">{{post.Title}}</span>
                </div>
                <div class="card-content">
                    <p>{{post.Excerpt}}</p>
                </div>
            </div>
        </div>

    </div>
</section>

Angular code:

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

myApp.controller('postsController',['$scope', '$http', function ($scope, $http) {
    $http.get("api/db.php").
    success(function(response) {
        console.log(response); //For testing
        $scope.posts = response;
        console.log("Connected to MySQL server.");
        $scope.$on('done', function(ngRepeatFinishedEvent) {
            console.log("All content has been loaded :)");
            $('.modal-trigger').leanModal();
        });
    });
}]);

myApp.directive('onFinishRender', function ($timeout) {
    return {
        restrict: 'A',
        link: function (scope, element, attr) {
            if (scope.$last === true) {
                $timeout(function () {
                    scope.$emit(attr.onFinishRender);
                });
            }
        }
    }
});

Now the problem is in {{post.Excerpt}} that it's saved in HTML in my database. It works but I've get it in text (like in a ). So my question is how to display it with html?

I read some about ng-bind-html-unsafe but many ppl's said that doesn't work. Any suggestions?

Grettings, W

2

1 Answer 1

2

You can make an filter for it.

filter:

myApp.filter('ashtml', function($sce) { return $sce.trustAsHtml; });

view

<div ng-bind-html="post.Excerpt | ashtml"></div>

Working Demo:

     angular.module('myapp', [])
     .controller('HelloWorldCtrl', function($scope){
          $scope.helloMessage = "Hello A.B";
        $scope.post = {};
          $scope.post.Excerpt = '<p>hello html</p>';
          })
     .filter('ashtml', function($sce) { return $sce.trustAsHtml; })
     ;
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
    <!DOCTYPE html>
        <html ng-app="myapp">
        <head lang="en">
        <meta charset="UTF-8">
        <title></title>
        </head>
        <body ng-controller="HelloWorldCtrl">
        <h1 >{{helloMessage}}</h1>
        <div ng-bind-html="post.Excerpt | ashtml"></div>
      
      
      
   
        </body>
        </html>

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.