ng-bind-html不适用于ng-options

时间:2014-01-17 13:34:31

标签: javascript angularjs ng-options ng-bind-html

我需要清理选项中的特殊字符,但它无法正常工作。也许有人可以告诉我应该如何正确地做到这一点?

例如:

HTML:

<div ng-controller="Ctrl">
    <select id="limitType" name="limit" ng-model="selectedLimit" ng-options="limit.text for limit in limits" ng-init="selectedLimit='5'" ng-bind-html="limit.text"></select>
<div>

JS:

var app = angular.module('app',['ngSanitize']);

function Ctrl($scope) {
  $scope.limits = [{
    text: 'Afficher &#0153; par page'
  }, {
    text: 'Afficher 10 par page'
  }, {
    text: 'Afficher 15 par page'
  }, {
    text: 'Afficher 20 par page'
  }];   
}

以下是关于小提琴的链接:http://jsfiddle.net/rfTV2/3/

3 个答案:

答案 0 :(得分:6)

您有三种选择。

  1. 您可以直接在源中包含unicode字符
  2. 您可以convert the html entities to unicode in the browser using JavaScript
  3. 或者你可以fall-back to ng-repeat and use ng-bind-html on your option tag

答案 1 :(得分:0)

我认为CAT已经提供了答案。我只是提供了如何使用ng-bind-html

的readigs
  1. ng-bind-html directive
  2. ng-sanitize module
  3. $sce service

答案 2 :(得分:-2)

你试过吗?

$sce.trustAsHtml()

在你的例子中,它将是这样的(未经测试)

function Ctrl($scope, $sce) {
  $scope.limits = [{
    text: $sce.trustAsHtml('Afficher &#0153; par page')
  }, {
    text: 'Afficher 10 par page'
  }, {
    text: 'Afficher 15 par page'
  }, {
    text: 'Afficher 20 par page'
  }];   
}