Я пытаюсь настроить базовую архитектуру для проекта Phonegap с использованием jQueryMobile и Backbone.js
Мы будем ориентироваться на несколько платформ и планировать расширение в будущем.
Я хочу, чтобы мой код на макете полностью не знал о типах элементов HTML, связанных с представлениями, поскольку мы понятия не имеем, как будут выглядеть представления на всех платформах.
Простым примером может быть то, что на одной платформе список элементов может быть сделан из элементов и LI
, но по другому нам может потребоваться переключить его на DIV
и P
элементов.Backbone.js Динамический просмотр Tagname?
На данный момент, если я не указываю tagName, по умолчанию он равен DIV
.
Я хочу, чтобы быть в состоянии предоставить шаблон, как это на одной странице:
<script id="attachmentTemplate" type="text/template">
<li><a href="#"><%= title %></a></li>
</script>
и на другой обеспечивают:
<script id="attachmentTemplate" type="text/template">
<p><a href="#"><%= title %></a></p>
</script>
Я не могу сделать это без указания тэгу (как я сказал , по умолчанию он равен DIV
).
У кого-нибудь есть какие-либо советы или методы для этого? Ключ в том, что я не хочу, чтобы Javascript знал о типе элемента HTML, я хочу, чтобы HTML определял это.
Я на 100% новичок в Backbone, не могли бы вы дать немного больше объяснений относительно того, что делает этот код? Я предполагаю, что 'delegateEvents' и' undelegateEvents' - ваша собственная практика, а не стандарт? –
Кстати, моя функция render уже включает этот код: '$ (this.el) .html (this.template (this.model.toJSON()));' Я не понимаю разницы. –
delegateEvents - это метод Backbone, который вызывается внутренне, когда вызывается метод конструктора вида, то, что он делает, связывает события, указанные в вашем представлении, и присоединяет их. undelegateEvents отменяет это. Проверьте документацию http://documentcloud.github.com/backbone/#View-delegateEvents и http://documentcloud.github.com/backbone/#View-undelegateEvents –