2015-07-10 19 views

Trả lời

20

Thay vì đi qua chuỗi để xem trực tiếp, bạn nên sử dụng sce.trustAsHtml để html trước quá trình.

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

Sau đó, trong mẫu xem của bạn, hãy sử dụng ng-bind-html để xử lý liên kết html.

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

Như bạn nói bạn có một mảng các đối tượng, nó không phải là dễ dàng để đúc chúng trong điều khiển của bạn, bạn có thể ràng buộc $sce-$scope của bạn sau đó gọi trustAsHtml theo quan điểm của bạn

Vì vậy, trong điều khiển của bạn

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

Sau đó, theo quan điểm html của bạn

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

bạn có thể xem ví dụ này https://jsfiddle.net/1joo0j77/4/ – Flash

+0

tôi đang gặp hàng loạt các objects..so làm thế nào để áp dụng nó bcoz không phải là một giá trị duy nhất của nó .. và tôi phải đăng ký bên trong một ng-repeat – Flash

+0

@Flash kiểm tra bản cập nhật của tôi. Bạn chỉ có thể tiêm '$ sce' vào bộ điều khiển của bạn. – Rebornix

5

Vui lòng kiểm tra ví dụ làm việc này: http://jsfiddle.net/Shital_D/b9qtj56p/6/

Tải xuống tệp - angular-sanitize.js và đưa nó vào ứng dụng của bạn.

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

Nó hoạt động, nhưng khác biệt giữa angular_js và angular-sanitize.js là gì – GoutamS

Các vấn đề liên quan