2012-04-13 2 views
15

Я впечатлен Meteor и хотел бы использовать его с jQuery-Mobile. Я хотел бы знать, если кто-то уже создал образец приложения для интеграции. Если нет, некоторые рекомендации будут отличными.jQuery-Mobile Meteor интеграция образца и/или интеграция руководства

С уважением,

Седрик

+6

Меня тоже интересует и пытаюсь его интегрировать. jQuery Mobile инициализирует страницу и изменяет DOM при загрузке. Затем метеор инициализирует и добавляет собственный html в DOM и эти конфликты. Установка '$ .mobile.autoInitializePage = false;' внутри события 'mobileinit' должно не допустить этого. Это насколько я понял. Будет обновляться с ответом, если/когда я придумаю полный образец/руководство. – rmarscher

+2

Просто поместите jquery.js и jquery-mobile.js в каталог/client, например. Таким образом, они загружаются позже, чем другие скрипты. Не используйте jquery из пакета. Я попробовал упаковку jquery-mobile, предложенную в другом ответе, но у меня появилось больше проблем из-за порядка загрузки JavaScript в JavaScript. –

ответ

6

мне было интересно об этом, а поэтому я сделал пример приложения:

http://jqmdemo.meteor.com/

И это, кажется, работает хорошо. Вы можете найти исходный код здесь:

https://github.com/snez/jqm-meteor

Есть несколько моментов, при использовании двух вместе, смотрите комментарии в коде.

UPDATE: Похоже, что meteor.com переводит модернизацию в рамки метеора, нарушая старый код там. Используйте этот проект только в качестве ссылки, поскольку есть лучшие способы сделать то же самое с новыми версиями фреймов.

+0

Прохладный, приятная работа! –

+0

Это приложение не работает. Я получаю 'update failed: Access denied'. В результате я не могу проверить, что это фактически решает проблему, упомянутую @rmarscher: если вы открыли два браузера и изменяете значения на одном, метеорит обновит html и clobber, которые изменят jQuery. – jchook

+0

Для получения информации обновленная рабочая версия демонстрации доступна по адресу http://jqmdemo.meteor.com/ –

3

Я предлагаю взглянуть на пакет JQuery в папке /packages/jquery.

Все это добавляет файл jquery.js в стек файлов для отправки клиенту. Если вы после этого, вы можете добавить свой собственный пакет под названием jquery-mobile и включить файлы, которые ему нужны.

Смотрите файл package.js для того, как это работает:

https://github.com/meteor/meteor/blob/master/packages/jquery/package.js 

Так просто добавить мобильные файлы в Jquery-мобиля пакет и сделать что-то вроде:

Package.on_use(function (api) { 
    api.add_files('jquery.mobile-1.1.0.min.css', 'client'); 
    api.add_files('jquery.mobile-1.1.0.min.js', 'client'); 
}); 
+0

О, а затем включите его в свое приложение, используя «Meteor add» или добавьте в файл .meteor/packages в свой каталог приложений. – jonathanKingston

+0

Также, если вы прочтете ответ от N1mmy, один из разработчиков Meteor, он предлагает, чтобы API изменился: http://stackoverflow.com/questions/10114526/how-to-build-a-meteor-package Таким образом, я мог бы предложить просто включить файлы локально в файл js в ваш шаблон. – jonathanKingston

4

Я не был способный сначала запустить jQuery Mobile, когда я попытался связать файлы фреймворков в каталоге клиентов. Meteor выдавал ошибку в файлах JS, которые пытались установить DOCTYPE, даже файлы в папке примеров, на которые никогда не ссылались. Используя версию, содержащую CDN, и отключив autoInitializePage, как указано в комментарии выше, я получил его для работы без доступа к любым недокументированным API.

<link rel="stylesheet" href="http://code.jquery.com/mobile/1.0.1/jquery.mobile-1.0.1.min.css" /> 
<script src="http://code.jquery.com/jquery-1.6.4.min.js"></script> 
<script src="http://code.jquery.com/mobile/1.0.1/jquery.mobile-1.0.1.min.js"></script> 
<script type="text/javascript"> 
    $(document).bind("mobileinit", function(event, data){ 
      $.mobile.autoInitializePage = false; 
    });  
</script> 
Смежные вопросы