10

Я занимаюсь интеграцией Магистральной и Магистральной.Марионетки в существующий проект веб-приложений. В настоящее время мы планируем оставить все существующие функциональные возможности в проекте, но с любой новой функциональностью мы воспользуемся структурированием Backbone и принципами Marionette. Одним из первых заказов является решение о библиотеке визуализации HTML-шаблона, а также решение для привязки данных для этих шаблонов. Раньше мы использовали JsRender и JsViews для всех наших потребностей в шаблонах и привязки данных, но мы готовы изучить новые возможности для нашей новой функциональности. Поэтому я в основном изучал различные решения и теперь нуждаюсь в советах или мыслях о том, что выбрать. Вот то, что я посмотрел на до сих пор:Магистраль: привязка модели к шаблону и шаблона к модели

Backbone.StickIt:

Pros: Кажется следовать идею Backbone по разделению на озабоченности, которая помогает сохранить ваши шаблоны очень «чистый».

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

Rivets.js:

Плюсы: Ручки немного больше данных параметров в шаблоне связывания, не делая его слишком грязно.

Минусы: Также, кажется, не хватает условного рендеринга.

Knockback/Knockout:

Плюсы: Ручки всех видов связывания данных потребностей с помощью атрибутов.

Минусы: Легко начать «загрязнение» шаблона конверторами. Необходимо добавить еще один шаг для создания моделей представления нокаутов из моделей Backbone.

JsViews:

Pros: Подобно способностям KNOCKOUT, но с другим синтаксисом. Обрабатывает условный рендеринг.

Против: в прошлом мы загрязняли наши шаблоны, добавляя слишком много бизнес-логики в шаблон, но это может быть проблемой нашего развития, которую мы можем исправить. Необходимо создать функциональные возможности для привязки функциональности наблюдаемости JsViews к событиям модели Backbone. Другие библиотеки, такие как StickIt и Knockback, автоматически обрабатывают это.

Мы также рассмотрели Backbone.ModelBinder, который находится где-то в промежутке между StickIt и заклепками.

Может ли кто-нибудь поделиться любыми решениями, которые они приняли, и почему они выбрали один плагин/библиотеку над другим? Я также открыт для других предложений. Благодарю.

ответ

2

Я использовал эти

Усы.js

Pro: не только поддерживает привязку переменной усы, но также может связывать функцию привязки функций. Например, у вас может быть

<a href="{{test}}" >click me </a> 

И тогда у вас есть метод под названием test. Это позволяет сэкономить много времени, чтобы присвоить класс/id для связи и связать событие в классе View.

Con: Мне не нравится его синтаксис.

Далее я использую coffeescript в Ruby on Rails, который имеет встроенную систему эко-шаблонов. pro, у вас есть шаблоны в отдельных файлах. В pageload они получают привязку к глобальной переменной в dom. Они минимизированы и лучше, чем некоторые теги шаблона псевдоцена. Другой профессионал, вы пишете, если еще и для циклов, как вы делаете в рубине. Недостатком является то, что они используют метки бритвы и не позволяют легко смешивать с кодом сервера (например, перевод).

Другая библиотека - это символ подчеркивания шаблонов. Очень простой, но довольно мощный. Proside, у вас уже есть это (подчеркивание необходимо для магистрали). Недостатком является то, что вы не можете (по умолчанию) загрузить шаблон из внешнего файла. Я решил это, используя код serveride (require_once, render partial). Однако, если вы используете require.js вместе с текстовым плагином (http://requirejs.org/docs/download.html#text), вы можете загрузить шаблоны в качестве зависимости.

+1

Я проверил подчёркивание (смешно, что я не думал, что он включен, как вы упомянули). Я чувствовал, что у нас могут быть такие же проблемы с шаблонами спагетти. Основная проблема заключается в том, что у нас есть несколько разработчиков, работающих над шаблонами, и мы начали переплетать слишком много логики и синтаксиса шаблона в HTML. Поэтому, чтобы заставить нас отказаться от этой привычки, мы решили пойти с Backbone.Stickit. Похоже, что потребуется некоторое время, чтобы привыкнуть к созданию привязок вне шаблона, но, надеюсь, мы выиграем от «чистоты» нашего HTML. Спасибо за ваш вклад. –

Смежные вопросы