2016-12-22 4 views
0

Прошло некоторое время, и я знаю, что есть решение. Я извлекаю объект из Firebase 3. Это строка, содержащая html. Я вставляю значение в Angular2 component.html. Есть способ, вызов функции, метод для рендеринга html без тега <b> в Angular2?HTML String отображается неправильно

key: Description 
    value: <p>Hello World</p> 

enter image description here

В моем угловом компоненте HTML

<h3>Description</h3><div>{{something.Description}}</div> 

HTML, это делают как:

enter image description here

+3

Да, есть. Проверьте это http://stackoverflow.com/questions/20778709/prevent-angular-from-escaping-html –

+0

@ user7326764 Это не решение Angular2. – Santi

ответ

1

несколько способов добиться этого:

1) Попробуйте использовать метод углов вместо .append.

<h3>Description</h3><div id='divID'></div>

var myElement = angular.element(document.querySelector('#divID')); 
myElement.append('<p>Your values/variables</p>'); 

2) Для угловых 2:

<div [innerHTML]="theHtmlString"> 
</div> 

3) Для тех, которые приходят через это до сих пор используют Угловое 1 против 2:

другой способ, это ng-bind-html, что-то ли ке так:

HTML

<div ng-controller="ExampleController"> 
<p ng-bind-html="myHTML"></p> 
</div> 

JS

angular.module('bindHtmlExample', ['ngSanitize']) 
.controller('ExampleController', ['$scope', function($scope) { 
    $scope.myHTML = 
    '<h3>Description:</h3>' + 
    '<div> YOUR VARIABLES </div>'; 
}]); 
+0

Я предлагаю удалить часть вашего ответа «ng-bind-html», только потому, что это может смутить читателей, которые наткнутся на этот вопрос в будущем - это неверно, поскольку OP специально заявил, что ищет угловую 2 решение. ** EDIT: ** Nice edit :) – Santi

1

ng-bind-html (как многие предполагают) не является решением Angular2. Вместо этого используйте [innerHTML].

<div [innerHTML]="something.Description"></div> 
Смежные вопросы