1

Angular を学習するための小さなアプリを作成しており、テキスト処理用のカスタム フィルターを作成しました。出力テキストに複数のスペースがある場合を除いて、すべてが正常に機能していますが、これらは自動的に単一のスペースに縮小されますが、これは望ましくありません。問題がない出力をログに記録しているため、問題は定義した関数にはありません。

HTML:

<textarea name="textarea" rows="10" cols="50" ng-model="encodeText" placeholder="Type or paste in a message to encode." ></textarea>
<p>Filtered input: {{ encodeText | encode }}</p>

JS:

(function(){
  var app = angular.module('myApp', []);
  app.filter("encode", function() {
    return function(input) {
      if (input) {
        //text processing
        console.log(output);
        return output;
      }
    };
 });

モールス信号の練習です。したがって、コンソール ログの出力は次のとおりです。

.- -... -.-.   -.. . ..-. 

2つのスペース付き。私が見るページで:

Filtered input: .- -... -.-. -.. . ..-.

私がグーグルから見ている唯一の提案は、テキストエリアで ng-trim="false" を使用することですが、これは効果がありません。フィルター自体の中でトリミングが行われているようです。何が原因で、無効にするにはどうすればよいですか? コードレポ

4

2 に答える 2

7

デフォルトでは、HTML は複数の空白を保持しません (それらを 1 つの空白にまとめます)。<p>タグにスタイルを追加して、空白を保持します...

<p style="white-space: pre">Filtered input: {{ encodeText | encode }}</p>
于 2014-05-30T23:08:56.037 に答える
2

出力のp形式。試す:

<pre>{ encodeText | encode }</pre>
于 2014-05-30T23:09:50.243 に答える