一尘不染

如何使用angularJs从json值呈现HTML标签

angularjs

// json就是这样

"_unparsedString": "<p>test<\/p>"

// HTML

<div>Preamble : '{{item2._unparsedString}}'</div>

//输出

Preamble : <p>test<\/p>

但是如何渲染该标签并使用angular显示它呢?

//输出应该像这样

 Preamble : test

阅读 181

收藏
2020-07-04

共1个答案

一尘不染

与其传递字符串以直接查看,不如使用sce.trustAsHtml预处理html。

$scope.bindHTML = $sce.trustAsHtml(item2._unparsedString);

然后在视图模板中,使用ng-bind-html处理html绑定。

<div>Preamble : <div ng-bind-html="bindHTML"></div></div>

正如您提到的那样,您有一个对象数组,将它们投射到控制器中并不是那么容易,您可以在视图中绑定$sce到您的$scopethen调用trustAsHtml

因此,在您的控制器中

myapp.controller('mainController', function ($scope, $http, $filter, $sce) {
   $scope.$sce = $sce;
...
}

然后在您的html视图中

<div>Preamble {{$index+1}} : <span ng-bind-html="$sce.trustAsHtml(item1.Preamble._unparsedString)"></span></div>
2020-07-04