Правильный ответ:
select table_record_id,
group_concat(if(value_name='note', value_text, NULL)) as note
,group_concat(if(value_name='hire_date', value_text, NULL)) as hire_date
,group_concat(if(value_name='termination_date', value_text, NULL)) as termination_date
,group_concat(if(value_name='department', value_text, NULL)) as department
,group_concat(if(value_name='reporting_to', value_text, NULL)) as reporting_to
,group_concat(if(value_name='shift_start_time', value_text, NULL)) as shift_start_time
,group_concat(if(value_name='shift_end_time', value_text, NULL)) as shift_end_time
from other_value
where table_name = 'employee'
and is_active = 'y'
and is_deleted = 'n'
GROUP BY table_record_id
Это не проблема с MongoDB, но вы узнали, как работает HTML:)
Когда вы отправляете текстовое поле, все символы новой строки являются просто символами новой строки, отправленными на сервер (\n
или \r\n
). Они хранятся в базе данных как есть. Тем не менее, в новых символах HTML игнорируются и рассматриваются как пробелы при представлении текста (если вы не обернете это в блок <pre></pre>
).
Решение заключается в замене всех \n
на теги <br />
. Если вы знакомы с PHP, это будет использовать функцию nl2br
, которая была перенесена на JavaScript здесь: http://phpjs.org/functions/nl2br/
Это не имеет ничего общего с MongoDB. Вы получаете текст из элемента textarea HTML, и он имеет символы «новая строка» (\n
, \r
или \r\n
) в качестве разделителя параграфа. Когда вы помещаете его в элементы HTML p, эти новые строки интерпретируются как базовые пробелы. Вы должны преобразовать эти символы новой строки в элементы HTML br или поместить каждый текстовый блок в отдельные p-элементы.
Проверьте этот пакет npm: https://www.npmjs.com/package/ nl2br
Вы можете легко кодировать лучшую.
String.prototype.nl2br = function() { return this.replace(/\\n/g, "<br />"); }
Это заменяет мою\n в моих строках с помощью & lt; br / & gt; но он не обрабатывается как HTML. например Lorem ipsum dolor\n sit amet.
превращается в Lorem ipsum dolor<br /> sit amet.
– tim
20 April 2015 в 18:50
white-space: pre-line;
. Теперь мне просто нужно добавить угловой фильтр, поэтому несколько абзацев представлены не только одним тегом <p>
, но и тегом абзаца для каждого из них.
– tim
21 April 2015 в 16:22