これはAngularのセキュリティ制限です。see docs hereです。
ng-bind-html
とロードngSanitize
モジュールを使用できます。 ngSanitize
をロードしない場合は、$sce.trustAsHtml(value)
を使用してください。
そして、それは($sce
がDEPであるコントローラに注入。)次のようになります。
vm.myReplace = function(item) {
return $sce.trustAsHtml(item.replace(/ /g, ' '));
};
以下のデモや、このfiddleを見てください。
アップデート2016年6月12日:
私はこれを行うための簡単な方法があるかどうかはわかりません。しかし、各列をチェックし、必要なパディングを計算することができます。 パディングを追加するために私はunderscore.stringを使用しました。
また、ng-repeat
を使用してください。ng-bind-html
を使用し、正しいスペースを使用すると、モノスペースのフォントを使用する必要があります。 Lucida ConsoleやCourier(フィドルのCSSスタイルを参照)。
ここにfiddleがあります。
これを実行するもう1つの方法は、選択タグのようなスタイルのディレクティブを作成し、ドロップダウン内の表を使用して正しい間隔を持たせることです。
アップデート2016年6月12日 - 21時25(UTC):
このfiddleを見てください。これはディレクティブアプローチを使用しており、私はこれが問題の最良の解決策だと考えています。
:myReplaceは(AWolfによって答えとして)であることを
<select name='Leerling' id='Leerling' size='1'>
<option value='Maak een keuze...' selected disabled>Maak een keuze...</option>
<option ng-repeat="leerlingOption in leerlingController.leerlingen"
ng-bind-html="leerlingController.myReplace(leerlingOption.leerlingdropdown)"
value={{leerlingOption.leerlingdropdown}}></option>
</select>
:仕事を得るための方法を見つけた
angular.module('demoApp', ['ngSanitize'])
\t .controller('mainCtrl', MainCtrl);
function MainCtrl() {
\t var vm = this;
vm.myReplace = function(item) {
\t return item.replace(/ /g, ' ');
\t };
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-sanitize/1.5.6/angular-sanitize.js"></script>
<div ng-app="demoApp" ng-controller="mainCtrl as ctrl">
<span ng-bind-html="ctrl.myReplace('This is spaced')"></span>
</div>
あなたが求めている正確に理解しないでください - あなただけの '空白を追加することはできません。あらかじめ;'? –
これは、 'sce'(厳密なコンテキストエスケープ)ライブラリ(https://docs.angularjs.org/api/ng/service/$sce#!)を使用して修正できるものですが、もっと重要な質問はなぜですか最初に角度変数の中にHTMLを格納しています。 – Claies