Как следует el
обрабатывать представление? Его нужно установить, иначе события не сработают (см. Здесь ).
Но должен ли это быть элемент, который уже есть на странице? В своем приложении я визуализирую шаблон (jQuery Templates) в Fancybox. Что должно el
быть в таком случае?
javascript
backbone.js
backbone-views
Мануэль Мерер
источник
источник
el
штуку.el
нравитсяgf
. никто не может понять их полностью.Ответы:
Эль представлений - это место, где происходит привязка всех событий. Вам не обязательно использовать его, но если вы хотите, чтобы магистраль запускала события, вам необходимо выполнить рендеринг на el. Представления el - это элемент DOM, но он не обязательно должен быть ранее существовавшим элементом. Он будет создан, если вы не извлечете его со своей текущей страницы, но вам придется вставить его на страницу, если вы когда-нибудь захотите увидеть, как он что-то делает.
Пример: у меня есть представление, которое создает отдельные элементы
Первое представление просто создает элементы списка, а второе представление фактически размещает их на странице. Я думаю, это очень похоже на то, что происходит в примере ToDo на сайте backbone.js. Я думаю, что конвенция заключается в том, чтобы передать вам содержимое в el. Таким образом, el служит местом посадки или контейнером для размещения вашего шаблонного контента. Затем Backbone связывает свои события с данными модели внутри него.
При создании представления можно манипулировать эл четырьмя способами , используя
el:
,tagName:
,className:
иid:
. Если ничего из этого не объявлено, по умолчанию используется div без идентификатора или класса. На данный момент он также не связан со страницей. Вы можете изменить тег на что-нибудь другое, используя tagName (напримерtagName: "li"
, даст вам el of<li></li>
). Вы также можете установить идентификатор и класс el. Тем не менее el не является частью вашей страницы. Свойство el позволяет выполнять очень тонкую обработку объекта el. В большинстве случаев я используюel: $("someElementInThePage")
который фактически связывает все манипуляции, которые вы делаете в вашем представлении, с текущей страницей. В противном случае, если вы хотите, чтобы вся тяжелая работа, которую вы проделали в своем представлении, отображалась на странице, вам нужно будет вставить / добавить ее на страницу в другом месте в вашем представлении (возможно, при визуализации). Мне нравится думать об el как о контейнере, которым манипулирует все ваше представление.источник
Немного устарел, но я тоже был смущен, поэтому другим людям, которые сюда попадают, эта скрипка может помочь - http://jsfiddle.net/hRndn/2/
источник
Вы хотите, чтобы ваш 'el' ссылался на элемент, содержащий дочерний элемент, у которого есть какое-либо событие, которое вызывает изменение в вашем представлении. Может быть размером с тег "body".
источник