为什么这个Angular JS过滤器要删除空格?

Why is this Angular JS filter removing spaces?

本文关键字:删除 空格 过滤器 JS Angular 为什么      更新时间:2023-09-26

我正在制作一个小应用程序来学习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;
      }
    };
 });

这是一个莫尔斯电码练习。因此控制台日志输出为:

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

有两个空格。在这一页我看到:

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

我从谷歌看到的唯一建议是在文本区使用ng-trim="false",这没有效果。似乎修剪是发生在过滤器本身。导致这种情况的原因是什么,我如何禁用它?代码回购

默认情况下,HTML不保留多个空格(将它们折叠成一个空格)。为<p>标签添加样式以保留空白…

<p style="white-space: pre">Filtered input: {{ encodeText | encode }}</p>

使用p格式输出。试一试:

<pre>{ encodeText | encode }</pre>