2015-04-13 5 views
0

Я пытаюсь сотрудничать с использованием нескольких текстовых полей. Например, когда textbox1 изменяется в одном окне браузера Chrome, текстовое поле 1 в другом окне браузера Chrome также должно быть изменено. Когда textbox2 изменяется в одном окне браузера Chrome, текстовое поле2 в другом окне браузера Chrome также должно быть изменено. Я изменил существующий код, предоставленный в https://developers.google.com/drive/realtime/realtime-quickstart Вот мой код изменился ...Совместное использование нескольких текстовых полей с помощью google-drive-realtime-api

index.html

<!-- Text areas that will be used as our collaborative controls. --> 
<input id="editor1" style="width:400px" placeholder="Type some text here..." autofocus><br /> 
<input id="editor2" style="width:400px" placeholder="Type some text here..."> 

function initializeModel(model) { 
    var string1 = model.createString('Hello Realtime World1!'); 
    model.getRoot().set('text', string1); 
    var string2 = model.createString('Hello Realtime World2!'); 
    model.getRoot().set('text', string2); 
} 

function onFileLoaded(doc) { 
    var string1 = doc.getModel().getRoot().get('text'); 
    var string2 = doc.getModel().getRoot().get('text'); 

    // Keeping one box updated with a String binder. 
    var textArea1 = document.getElementById('editor1'); 
    gapi.drive.realtime.databinding.bindString(string1, textArea1); 

    var textArea2 = document.getElementById('editor2'); 
    gapi.drive.realtime.databinding.bindString(string2, textArea2); 

.... 

Когда я попытался запустить это приложение и изменить textBox1, TextBox2 также изменятся а в других окнах оба текстовых поля изменяются одним и тем же текстом.

Просьба сообщить ... спасибо.

ответ

0

В initializeModel вы создаете два совместных элемента, но назначаете их как одному ключу в корневом «тексте».

Позже вы получаете ту же строку "текст" из корня как для string1 и string2:..

вар string1 = doc.getModel() GetRoot() получить ('текст'); var string2 = doc.getModel(). GetRoot(). Get ('text');

Вам нужно изменить один из этих «текстов» в обоих местах на что-то другое.

+0

Спасибо Шерил за ваш ответ! –

+0

Как я уже сказал, я попытался изменить «текст» на «текст1» для строки2, но второй текстовый блок перестает сотрудничать. model.getRoot(). Set ('text1', string2); var string2 = doc.getModel(). GetRoot(). Get ('text1'); Пожалуйста, сообщите ... спасибо. –

+1

Предлагаю вам повторно опубликовать свой код. Кроме того, если бы я был, я бы использовал «text1» для string1 и «text2» для string2. это делает менее вероятным, что вы перепутали ситуацию. –