2012-04-13 22 views
15

Tôi bị ấn tượng bởi Meteor và muốn sử dụng nó với jQuery-Mobile. Tôi muốn biết nếu ai đó đã xây dựng một ứng dụng tích hợp mẫu. Nếu không, một số hướng dẫn sẽ là tuyệt vời.Hướng dẫn tích hợp và/hoặc tích hợp mẫu jQuery-Mobile Meteor

Kính trọng,

Cédric

+6

Tôi cũng quan tâm đến điều này và đã cố gắng tích hợp nó. jQuery Mobile khởi tạo trang và sửa đổi DOM khi tải. Sau đó, sao băng khởi tạo và thêm html của riêng nó vào DOM và xung đột này. Đặt '$ .mobile.autoInitializePage = false;' bên trong sự kiện 'mobileinit' sẽ giữ cho điều đó xảy ra. Đó là như xa như tôi đã nhận được. Sẽ cập nhật với câu trả lời nếu/khi tôi đưa ra một mẫu/hướng dẫn hoàn chỉnh. – rmarscher

+2

Đơn giản chỉ cần đặt jquery.js và jquery-mobile.js trong thư mục/client. Bằng cách đó, chúng được tải sau các tập lệnh khác. Không sử dụng jquery từ gói. Tôi đã thử jquery-mobile đóng gói được đề xuất trong câu trả lời khác nhưng tôi đã gặp nhiều rắc rối hơn vì lệnh tải Javascript của Meteor. –

Trả lời

6

tôi đã tự hỏi về vấn đề này cũng vì vậy tôi đã thực hiện một ứng dụng mẫu:

http://jqmdemo.meteor.com/

Và có vẻ như để làm việc tốt. Bạn có thể tìm thấy mã nguồn ở đây:

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

Có một vài gotchas khi sử dụng hai với nhau, thấy các chú thích trong mã.

CẬP NHẬT: Dường như meteor.com đang nâng cấp lên khung sao băng vi phạm mã cũ ở đó. Sử dụng dự án này như một tham chiếu chỉ vì có những cách tốt hơn để làm điều tương tự với các phiên bản khung mới hơn.

+0

Làm việc tuyệt vời! –

+0

Ứng dụng này không hoạt động. Tôi nhận được 'cập nhật không thành công: Truy cập bị từ chối'. Kết quả là tôi không thể xác minh rằng điều này thực sự giải quyết được vấn đề được đề cập bởi @rmarscher: nếu bạn có hai trình duyệt đang mở và sửa đổi các giá trị trên một, meteor sẽ cập nhật html và thay đổi các thay đổi trên thiết bị di động của jQuery. – jchook

+0

Để biết thông tin, bản cập nhật, phiên bản làm việc của bản trình diễn có sẵn tại http://jqmdemo.meteor.com/ –

3

tôi khuyên bạn nên xem xét các gói jQuery trong thư mục /packages/jquery.

Tất cả việc này là thêm tệp jquery.js vào ngăn xếp tệp để gửi tới ứng dụng khách. Nếu sau này bạn có thể thêm gói của riêng bạn gọi là jquery-mobile và bao gồm các tệp cần thiết.

Xem file package.js cho cách hoạt động:

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

Vì vậy, chỉ cần thêm các tập tin di động vào gói jquery-mobile của bạn và làm một cái gì đó như:

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

Và sau đó đưa nó vào ứng dụng của bạn bằng cách sử dụng "Meteor add" hoặc thêm vào tệp .meteor/packages trong thư mục ứng dụng của bạn – jonathanKingston

+0

Ngoài ra nếu bạn đọc trả lời từ N1mmy một trong những nhà phát triển của Meteor, anh ta gợi ý rằng API sẽ thay đổi: http://stackoverflow.com/questions/10114526/how-to-build-a-meteor-package Vì vậy, tôi có thể đề xuất chỉ đưa các tệp cục bộ vào tệp js vào mẫu của bạn thay thế. – jonathanKingston

4

tôi đã không có thể làm cho jQuery Mobile hoạt động ban đầu khi tôi cố gắng đóng gói các tệp khung công tác trong thư mục máy khách. Meteor đã ném một lỗi trên các tệp JS đang cố gắng đặt DOCTYPE, ngay cả các tệp trong thư mục ví dụ không bao giờ được tham chiếu. Bằng cách sử dụng phiên bản được lưu trữ trên CDN và vô hiệu hóa autoInitializePage như được đề cập trong một nhận xét ở trên, tôi đã nhận nó hoạt động mà không cần truy cập vào bất kỳ API không có giấy tờ nào.

<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>