2012-12-16 33 views
9

Tôi đọc article sau đây về cách tải Google Maps và gmaps.js để hoạt động với RequireJS. Tuy nhiên, khi tôi xây dựng dự án của mình, RequireJS được đổi chỗ với Almond. Trong bài viết trên, nó nói rằng Almond sẽ không làm việc với plugin requireJS async. Nếu không có plugin async, phụ thuộc của Google sẽ không được tải và gmaps.js sẽ phát ra lỗi.Yêu cầu plugin async RequireJS hoạt động với almond.js

Có cách nào giải quyết vấn đề và vẫn tải mã bản đồ Google trong dự án sử dụng Almond thay vì RequireJS không?

Trả lời

1

Vâng tôi cũng đang tìm điều này. Thư viện động không thể được tải nó nói. Tôi đoán bạn sẽ phải tải nó cục bộ.

0

Almond.js can't handle with asynchronous plugins. Bạn có thể sử dụng jQuery.Deferred để tải các thư viện.

var googleMapsLoader = function(func, options) { 
    var defaults = { 
     "sensor" : "false", 
     "v"  : "3", 
     "key"  : "", 
     "language" : "pt", 
     "region" : "br", 
     "libraries": "" 
    }; 

    $.when($.ajax({ 
     type: "GET", 
     dataType: "script", 
     data: $.extend({}, defaults, options), 
     url: "https://maps.google.com/maps/api/js", 
     crossDomain: true 
    })).then(function() { 
     func(); 
    }); 
}; 

/* 
* Loading Google Maps API with $.Deferred. 
*/ 
googleMapsLoader(function() { 
    // You may call your code here. 
}, { 
    "libraries" : "geometry,places", 
    "v"   : "3.7" 
}); 

Nhìn vào this example bằng $ .Deferred và Maplace.

Các vấn đề liên quan