2013-01-09 16 views
15

Staram się zrobić coś takiegoJak zmodyfikować innerHTML oceniając kątową wyraz

<div id="{{item.id}}" ng-repeat="item in itemList"> 
    {{item.innerHTML}} 
</div> 

item.innerHTML zawiera html, który musi iść tam, ale ponieważ jest częścią dom, to jest zastąpiony jako ciąg. Czy istnieje sposób, aby po prostu zastąpić innerHTML?

Dzięki!

Odpowiedz

31

Trzeba użyć ngBindHtml:

http://plnkr.co/edit/n1rLzgEZQoa2tJf0qnVZ?p=preview

w kontrolerze:

$scope.content = "<b>this is bold content</b>"; 

html:

<div ng-bind-html="content"></div> 

musisz następujący moduł:

http://code.angularjs.org/1.0.3/angular-sanitize.js

Należy zadeklarować ngSanitize jako moduł dependancy, na przykład:

var app = angular.module('angularjs-starter', ["ngSanitize"]); 
+0

Próbowałem, ale nie wydają się działać. To właśnie dostaję w html

. Czy czegoś brakuje? – pkrish

+0

przykład działa tak długo, jak wiem: http://plnkr.co/edit/n1rLzgEZQoa2tJf0qnVZ?p=preview musisz zapomnieć o zrobieniu czegoś, także nie umieszczaj {{}} w ng-bind-html, ponieważ jest to wyrażenie. – mpm

+0

Dzięki! To się udało. Myślałem, że używasz {{}} do oceny wyrażeń? http://docs.angularjs.org/guide/expression – pkrish