Изменить текст по умолчанию в ShareJS

Ситуация: у меня есть сайт, написанный на PHP & MySQL для создания / обмена документами. Теперь мне нужно добавить некоторые функции совместной работы на веб-сайт, поэтому я решил использовать shareJS (используя редактор по умолчанию).

Почти все работает нормально, но я не могу установить текст по умолчанию в редакторе, потому что он берет данные из базы данных Redis по умолчанию. Да, я могу попытаться переписать данные в Redis DB или изменить их с помощью MySQL DB, но я хочу избежать этого.

В клиентской части я пытаюсь удалить весь текст и установить новый

// delete text which come from node server
var nodeText = doc.getText();
var nodeTextRows = nodeText.split("\n");
nodeTextRows.forEach(function(text, i, arr) {
var locIDX = i+1;
doc.del(locIDX, text.length);
console.log("Delete: " + locIDX + " " + text + " " + text.length);
});


// insert text from DB into editor
var textRows = text.split("\n");
textRows.forEach(function(text, i, arr) {
var locIDX = i+1;
doc.insert(locIDX, text);
console.log("Insert: " + locIDX + " " + text);
});

Но это не работает из-за этого кода shareJS

if editorText != otText
console.error "Text does not match!"console.error "editor: #{editorText}"console.error "ot: #{otText}"# Should probably also replace the editor text with the doc snapshot.
, 0

Итак, мое сообщение об ошибке:
Текст не соответствует
редактор: {пустая строка}
ot: {некоторый мусор, сделанный вводом и кодом выше}

Мэйб, я делаю это неправильно.

0

Решение

Вот недокументированная функция, которую я нашел в исходном коде:

doc.attach_ace(editor, true);

Вторая переменная говорит, чтобы сохранить содержимое редактора, чтобы вы могли установить свой собственный текст в редакторе.

Надеюсь, что это будет полезно.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]