Angularjs:ng-bind-html&ng-repeat

我有一个视图,我从数据库中检索此模板后我正在更新:

<div class="row" ng-repeat="post in posts">
        <div class="col-lg-9 col-lg-offset-2">        
          <!-- blog entry -->
          <br ng-hide="$last">
          <h1><a href="{{'#/post/' + post.title}}">{{post.title}} </a></h1>
          <p><span class="glyphicon glyphicon-time"></span> Posted on {{ post.time_Date | date:'MM/dd/yyyy @ h:mma'}} </p>
          <div class="image_Center">
            <!-- <img ng-src="{{post.imageUrl}}" width="550" height="450"> -->
            <img ng-src="{{post.imageUrl}}" width="450" height="350">
          </div>
          <br>
          <br>
          <div ng-bind-html="TrustDangerousSnippet()">
            <p>{{post.post}}</p>
          </div>
............not properly closed(huge template)

我正在尝试使用我存储的markdown文本更新{{post.post}}并使用我的控制器正确显示它.代码如下:

$scope.posts = input_data;
$scope.TrustDangerousSnippet = function() {
  return $sce.trustAsHtml(input_data.post);
};

input_data是来自我的服务器的JSON对象(博客文章)的集合.问题是没有显示整个对象,但如果要显示其中一个对象,它将呈现给页面.可能是什么问题呢?

$scope.posts = input_data;
$scope.TrustDangerousSnippet = function() {
  return $sce.trustAsHtml(input_data[1].post);
};

这是否与正确使用ng-repeat有关?

解决方法

您试图在TrustDangerousSnippet函数中解析input_data.post,但这不存在.

相反,将对象传递给方法,如下所示:

<div ng-bind-html="TrustDangerousSnippet(post.post)">
</div>

方法更改为:

$scope.TrustDangerousSnippet = function(snippet) {
  return $sce.trustAsHtml(snippet);
};

小提琴示例:http://jsfiddle.net/ZxPHW/

编辑:此外,您不需要将{{post.post}}添加到html.

相关文章

ANGULAR.JS:NG-SELECTANDNG-OPTIONSPS:其实看英文文档比看中...
AngularJS中使用Chart.js制折线图与饼图实例  Chart.js 是...
IE浏览器兼容性后续前言 继续尝试解决IE浏览器兼容性问题,...
Angular实现下拉菜单多选写这篇文章时,引用文章地址如下:h...
在AngularJS应用中集成科大讯飞语音输入功能前言 根据项目...
Angular数据更新不及时问题探讨前言 在修复控制角标正确变...