html没有在ng-repeat中呈现

时间:2014-02-14 21:25:54

标签: javascript html angularjs binding

我在ng-repeat中渲染一段HTML时遇到问题。 £未呈现为HTML而是纯文本 - 请参阅http://jsfiddle.net/b3Em6/1/

<div ng-app>
    <ul ng-controller="CartController">
        <li ng-repeat="charge in charges">
            <span ng-bind-html-unsafe="charge.currencySymbol">{{charge.currencySymbol}}</span>
            <span ng-bind="charge.price"></span>
        </li>
    </ul>
</div>

脚本

function CartController($scope) {

    $scope.charges = [
        { price: 22, currencySymbol: 'C$'},
        { price: 44, currencySymbol: '&pound;'}
    ];
}

显示的结果是:

C$ 22
&pound; 44

如果我取出{{charge.currencySymbol}},则根本不显示该货币。 我正在使用AngularJS 1.2.7

2 个答案:

答案 0 :(得分:2)

1.2.x版本的Angular中不再存在

ng-bind-html-unsafe。见http://docs.angularjs.org/guide/migration#ngbindhtmlunsafe-has-been-removed-and-replaced-by-ngbindhtml

您需要包含ngSanitize模块并使用ng-bind-html。请使用最新版本的Angular查看更新的小提琴:http://jsfiddle.net/b3Em6/3/

答案 1 :(得分:1)

直接使用符号,如http://jsfiddle.net/b3Em6/2/

所示
function CartController($scope) {

$scope.charges = [
    { price: 22, currencySymbol: '$'},
    { price: 44, currencySymbol: '£'}
  ];
}