2017-05-20 3 views
0

Je construis un glisser-déposer de base qui contient divers éléments HTML préparés que vous pouvez faire glisser et déposer dans la page.Angular2: Injecter du code HTML à partir d'un tableau et afficher la vue

J'ai obtenu un objet avec la liste de HTML que vous pouvez faire glisser

element=[ 
text: {html: '<p> asdasdasdas</p>'}, 
list: {html: '<ul><li></li></ul>'}; 
img: {html: '<img src="placeholder.jpg"/>'} 
] 

Comment injecter le code HTML dans la page?

Ou devrais-je créer les fragments HTML en tant que composant et avoir un objet référencé dans les éléments dans le sélecteur de composants et injecter le sélecteur angulaire et rendre la vue?

Répondre

1

Vous pouvez utiliser ng-bind-html pour lier html

<div ng-bind-html="element.text.html"></div> 
<div ng-bind-html="element.list.html"></div> 
<div ng-bind-html="element.img.html"></div> 

Remarque: Vous devez inclure le module ngSanitize sur votre application pour utiliser ng-bind-html

+0

ce qui se passe si je suis classe angulaire à l'intérieur de ce HTML et je lier le HTML serait-il lier les auditeurs d'événements aussi? –

+0

Vous devez injecter $ sce à votre contrôleur et ensuite définir votre code HTML avec la fonction trustAsHtml. Exemple: '$ scope.htmlText = $ sce.trustAsHtml ($ scope.element.text.html)' –

+0

$ scope est angulaire 1, je parle de 2 buddy angulaire :) –