Как использовать jQuery Mobile и Backbone JS вместе в одном приложении? - PullRequest
19 голосов
/ 04 апреля 2011

Мне нравится использовать Backbone JS для проекта iPad HTML5 ... Но я быстро сталкиваюсь с необходимостью переходов через iPad, вывода элементов формы и т. Д. После осмотра, JQuery Mobile кажется самым установлено. Мы все равно используем jQuery.

Но одна вещь, с которой я быстро столкнулся, заключалась в том, что хеш-события / аяксы двух библиотек быстро не работали. Поскольку jQuery Mobile заботится о загрузке страниц, выполнении переходов и т. Д., Он не позволяет моим маршрутам Backbone Controller работать, как раньше. Казалось, что они на самом деле не совместимы?

Хотя после некоторой работы у меня есть базовый обходной путь ... Использование материала событий загрузки страницы в jQuery Mobile, чтобы увидеть активную страницу, на которой он находится, и затем запустить правильное Backbone View, которое идет с этой страницей. По сути, полностью отказался от прослушивания хэша Backbone / маршрутов / контроллера.

Но это все еще не кажется правильным? Как Backbone JS и jQuery Mobile могут беспрепятственно работать вместе? Как мне сделать это правильно, двигаясь вперед?

Ответы [ 4 ]

8 голосов
/ 05 апреля 2011

Я думаю, что нашел решение, когда задал тот же вопрос.

Отключите контроллер изменения хеша в мобильном интерфейсе JQuery и замените его на backbone.js

Тампохоже, можно отключить прослушивание изменений хеша JQuery при недавней проверке.

https://github.com/jquery/jquery-mobile/commit/3162428558efd9960739ef8f00a7ead0dbf6d3ec

Хотя я еще не пробовал.Если это работает, пожалуйста, сообщите нам.

Брэд

4 голосов
/ 29 апреля 2011

Похоже, что команда JQuery Mobile приняла осознанное решение не поддерживать динамические приложения, на которые нацелен Backbone.js. Начиная с примечания к выпуску alpha 4 :

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

Еще одним доказательством этого является удаление опции autoInitialize при переходе с альфа-3 на альфа-4: выпуск 1391

Итак, нам нужны обходные пути. Альтернативный ответ - помочь исправить ошибки JQM и приблизить их к 1.0, чтобы мы могли включить динамические функции приложения в JQM ASAP.

1 голос
/ 06 августа 2011

Я предпочитаю что-то более интегрированное с мобильным jquery, поэтому обычно я заменяю магистральный маршрутизатор следующим: github.com/azicchetti/jquerymobile-routerпрекрасно работает

0 голосов
/ 14 апреля 2012

Нашел это, и оно отлично сработало для меня: Перенаправление с мобильного сайта (jQuery mobile) на основные стили сайта задерживается

Я перенаправлял на основной сайт, и он продолжал выдавать "Backboneистория началась "ошибки

...