Угловой анализ разметки "\ n" Проблема символов новой строки - PullRequest
0 голосов
/ 16 декабря 2018

Я создал блог, где markdown возвращается как строка из моего бэкэнда, однако, когда я возвращаю строку с правильными символами новой строки, она не работает должным образом.

Я использую ngx-markdown для обработки парсинга символов уценки и использования атрибута ngPreserveWhitespaces, чтобы обеспечить его правильную работу.

Пример:

// Example #1 Returned String
"## This is a subheader\n This is a sentence"

// Output
<h2>This is a subheader\n This is a sentence</h2>

Отображается какединственная строка с символом новой строки, физически отображаемым в виде текста, как указано выше.

Однако в любом из моих компонентов Angular я могу буквально записать эту же строку в качестве свойства компонента и вернуть его, и она правильно выглядит какИтак:

// Example #2 Hard Coded String
public correct: string = "## This is a subheader\n This is a sentence";

// Output

<h2>This is a subheader</h2>

<p>This is a sentence</p>

Как уже упоминалось, используемый мной анализатор уценки реализован так:

<markdown ngPreserveWhitespaces>{{content}}</markdown>

Я также пытался сделать это, установив ngPreserveWhitespaces в main /файлы tsconfig.Однако я не верю, что это проблема, поскольку я могу (изначально в JS) console.log, и моя возвращенная строка (# 1), и жестко закодированная строка (# 2), и даже мои чертовы журналы отображаются по-разному (споследний форматирует правильно, а первый просто форматирует выходные данные).

Я попытался:

  • JSON-форматирование / синтаксический анализ данных несколькими способами (как и без них)
  • Я попытался с помощью регулярных выражений вручную заменить символы
  • Я попытался просто вручную использовать <br />
  • Я попробовал все изложенное здесь относительно обработки этого анализатора уценкиПробел (в который я не верю, это проблема)

Ничто не может успокоить богов новой строки.

1 Ответ

0 голосов
/ 16 декабря 2018

Решение

Хорошо, так что я нашел свое решение для этого, теперь я сохраняю свою строку уценки следующим образом:

"## This is a subheader\n This is a sentence"

Это различие - это интерфейс, который я хранюэто внутри (Mongo db) уже помещает речевые метки вокруг строковых значений, так что теперь это на самом деле выглядит так:

""## This is a subheader\n This is a sentence""

Что более странно с MongoDB Compass, чем с тем, что я пытался.

Исходя из этого, я могу правильно JSON.parse значения (ранее он пытался сделать это со строкой, которая не была действительной JSON, поскольку она не была заключена в двойные речевые метки).

Сейчас я работаю с этим в расширении класса Property, который у меня есть для каждого из них и называется HtmlProperty, который при создании экземпляра правильно анализирует значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...