0

次のように、先行入力候補リストに追加の項目を追加するために、角度のある先行入力付きのフィルターを使用しています。

app.filter('finalAppend', function($sce){
  return function(array, value){ 
    array.push({
    name: $sce.trustAsHtml('Look for <b>' + value + '</b> in other shops'),
    type: 'good'
    }); 
    return array;
  }
});

HTMLでエンコードされた文字列を返したいのですが、角度は自動的にサニタイズします。提案どおり $sce を使用してみましたが、うまくいかないようです。plunkr は次のとおりです。

前もって感謝します。

4

1 に答える 1

1

ui-bootstrap 0.7.0 のようです。タイプヘッド ハイライト フィルターと独自の finalAppend フィルターの間に競合があります。

tpl.html を次のように変更するだけです。

<div ng-if="match.model.type!=null">
    <span  ng-bind-html="match.label"></span>
</div>

また、angularによって自動的にスローされる安全なエラーを防ぐために、angularサニタイズをロードします。

<script src="http://code.angularjs.org/1.3.1/angular-sanitize.js"></script>

ngSanitize をアプリに挿入します。

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

そして、それは機能します。プランカーのアドレスはこちらです。

ただし、引き続き typeahead 内部ハイライト フィルターを使用する場合は、ui-bootstrap を次のように変更できます (デモでは既に変更されています)。

<script src="//angular-ui.github.io/bootstrap/ui-bootstrap-tpls-0.11.2.js"></script>

これが機能することを願っています。楽しめ。: )

于 2014-11-03T06:47:22.463 に答える