Вставить перенос строки в текст typescript

291
08 октября 2018, 23:40

Есть приложение на Angular 6 в котором используется typescript соответственно. Есть кнопка копирования статистики из разных частей страницы. Для копирования написан ClipboardService который работает ClipboardService.copyToClipboard(text); и с ним все ок.

Проблема в том что данные нужно разделить по строкам так что-бы при вставке их в текстовый файл переносы строк сохранялись. Я пытался делать это так:

const text = 'a\nb';
ClipboardService.copyToClipboard(text);

Но разделитель копируется в буфер обмена как символ, вместо того чтобы делать перенос строки.

И в файле при вставке вместо:

a
b

Я получаю:

a\nb

Как можно реализовать такое поведение чтобы я мог определять где будет перенос строки?

Вот ClipboardService на всякий случай:

export class ClipboardService {
    static copyToClipboard(toCopy : any) : void {
        document.addEventListener('copy', (e : ClipboardEvent) => {
            const data = JSON.stringify(toCopy)
            e.clipboardData.setData('text/plain', data);
            e.preventDefault();
        });
        document.execCommand('copy');
    }
}

Спасибо.

Answer 1

Проблема в использовании JSON.stringify. Который при применении к строке экранирует спецсимволы.

Если его убрать - то при вставке все будет отлично:

class ClipboardService { 
  static copyToClipboard(toCopy) { 
    document.addEventListener('copy', (e) => { 
      e.clipboardData.setData('text/plain', toCopy); 
      e.preventDefault(); 
      console.log('copied'); 
    }); 
    document.execCommand('copy'); 
  } 
} 
 
ClipboardService.copyToClipboard('a\nb');

READ ALSO
jQuery - менеджер, неполная загрузка диалога

jQuery - менеджер, неполная загрузка диалога

В своём менеджере я использую очень невыгодную загрузку списка сообщений

230
Не работает простой javascript в Chrome на Android 4.2 / 4.3

Не работает простой javascript в Chrome на Android 4.2 / 4.3

Есть форма (тест), содержащая несколько вопросов, на которые надо давать ответы путем выбора от 0 до 5 балловСделано радиокнопками:

168
Javascript событие для всех ссылок

Javascript событие для всех ссылок

Как заменить jquery код на javascript?

178
Нужна помощь по Redux

Нужна помощь по Redux

Вот есть допустим начальный state

158