Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   велосипед для редактора строк (https://javascript.ru/forum/misc/49868-velosiped-dlya-redaktora-strok.html)

nverv 01.09.2014 16:49

Цитата:

Сообщение от tsigel (Сообщение 328449)
Когда выводите текст в редакторе - связываейте его не с конкретным html элементом, а с текстовой нодой внутри него.

непонятно

я так рассуждаю - элементы на экране это массив, нумерованый список и данные для отображения это массив
доступ к ним по одинаковому порядковому номеру в списке-массиве

но после добавления удаления элементов на экране исчезает соответствие порядковых номеров

tsigel 01.09.2014 16:51

Должна быть синхронизация. Вы же знаете какой элемент был удален - удаляете элемент массива

tsigel 01.09.2014 16:53

если проблема в том чтобы по удаленному элементу найти связь с элементом массива - можете при создании добавлять ему атрибут номера. Что-то типа data-index="someIndex"

nverv 01.09.2014 17:04

товарищи как эта штуковина называется?
классика же
наверняка есть паттерн или шаблон для работы со списками - с динамическим добавлением удалением элементов

nverv 01.09.2014 17:06

Цитата:

Сообщение от tsigel (Сообщение 328458)
если проблема в том чтобы по удаленному элементу найти связь с элементом массива - можете при создании добавлять ему атрибут номера. Что-то типа data-index="someIndex"

про data- первым делом и подумал но пока не придумал как его использовать

нужна помощь зала

tsigel 01.09.2014 17:11

Вообще обычно никто не парится с прямым управлением домом. Есть шаблонизаторы, которые решают все эти проблемы. Шаблонизаторы бывают как простые (которые полностью передергивают дом), так и покруче (которые запоминают связи данных и конретной текстовой ноды). Выбор их зависит от задачи и необходимости оптимизаций.

nverv 01.09.2014 17:14

Цитата:

Сообщение от tsigel (Сообщение 328467)
Вообще обычно никто не парится с прямым управлением домом. Есть шаблонизаторы, которые решают все эти проблемы. Шаблонизаторы бывают как простые (которые полностью передергивают дом), так и покруче (которые запоминают связи данных и конретной текстовой ноды). Выбор их зависит от задачи и необходимости оптимизаций.

я хочу понять устройство велосипеда ))
мне надо самому понять и собрать код а не копировать чужое
мне надо на практике доучиться

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

tsigel 01.09.2014 17:21

Хороший шаблонизатор (особенно такой как вы хотите с частичным обновлением) - это не паттерн, а много-много ООП кода.

nverv 01.09.2014 17:54

Цитата:

Сообщение от tsigel (Сообщение 328467)
Вообще обычно никто не парится с прямым управлением домом. Есть шаблонизаторы, которые решают все эти проблемы. Шаблонизаторы бывают как простые (которые полностью передергивают дом), так и покруче (которые запоминают связи данных и конретной текстовой ноды). Выбор их зависит от задачи и необходимости оптимизаций.

а почему это называется шаблонизатор

tsigel 01.09.2014 17:57

Потому что вам дужно выводить данные в определенном формате (шаблоне)

Например шаблон модального окна с использованием шаблонизатора underscore может выглядеть так:

<div>
   <div class="title"><%= title %></div>
   <div class="content"><%= content %></div>
   <div class="buttns">
       <% for (var i = 0; i < buttons.length; i++) { %>
            <button><%= button[i].text %></button>
       <% } %>
   </div>
</div>


Хочу получить верстку модального окна с 2 кнопками, заголовком и контентом:

_.template(modalTpl)({
      title: "Заголовок",
      content: "Контент",
      buttons: [{text: "Да"}, {text: "Нет"}]
   });


Таким образом мы уменьшаем в коде прямую работу с домом. Это удобно, особенно когда есть много похожих операций.


Часовой пояс GMT +3, время: 05:44.