2015-07-10 62 views
11

// JSON是這樣如何使用angularJs

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

// HTML

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

//輸出

Preamble : <p>test<\/p> 

但如何使從JSON值的HTML標記渲染該標籤並使用角度顯示它?

//輸出應該是這樣的

Preamble : test 

回答

20

不是傳遞字符串直接查看的,你應該使用sce.trustAsHtml預先處理的HTML。

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

然後在您的視圖模板中,使用ng-bind-html來處理html綁定。

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

至於你提到你有對象的數組,它不是那麼容易能趕在你的控制器,你可以綁定$sce$scope然後調用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> 
+0

你可以看到這個例子https://jsfiddle.net/1joo0j77/4/ – Flash

+0

我遇到的objects..so陣列如何應用它bcoz它不是一個單一的值..我必須在ng-repeat – Flash

+0

@Flash裏面申請我的更新。你可以在控制器中注入'$ sce'。 – Rebornix

5

請檢查此工作示例:http://jsfiddle.net/Shital_D/b9qtj56p/6/

下載文件 - angular-sanitize.js並將其包含在您的應用中。

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

app.controller('myController', function($scope,$compile) { 
    $scope.html = '<p>Your html code</p>'; 
}); 

<div ng-app="myApp"> 
    <div ng-controller="myController"> 
    <p ng-bind-html="html"></p> 
</div> 

+0

它工作,但angular_js和angular-sanitize.js之間有什麼不同 – GoutamS