Erfordernde Js laden Plugins
Frage
Ich versuche, ein Plugin mit RequestJs zu laden, erhalte aber gelegentlich einen Fehler. Ich lade meine Bibliotheken wie diese:
require(["jquery-1.4", "/script/jquery.autoSuggest.packed.js"], function($) {
$(function() {
//code
});
});
Können Sie sehen, ob an dieser Implementierung etwas falsch ist, das diesen Fehler verursachen würde? Erfordernder JS wird der Seite als SO hinzugefügt:
<script type="text/javascript" src="http://website.co.uk/frameworks/requirejs/0.2.4/sharedmodules/require.js">
</script>
<script type="text/javascript"> requireMap = {
"jquery-1.4":"http://website.co.uk/sharedmodules/jquery-1.4"
};
require({ baseUrl: 'http://website.co.uk/', paths: requireMap });
</script>
Dies kann nicht geändert werden, da es Teil des Rahmens ist, das ich verwende.
Irgendwelche Vorschläge?
Vielen Dank!
Lösung
Bestellplugin wird entfernt. Verwenden Sie wie folgt Shim Loading
requirejs.config({
paths: {
'jquery': 'https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min',
'bootstrap': '../bootstrap/js/bootstrap.min',
'select2': 'vendor/select2',
'jshashtable': 'vendor/jshashtable-2.1',
'jquery.numberformatter': 'vendor/jquery.numberformatter-1.2.3.min',
'jq-datepicker': 'vendor/bootstrap-datepicker',
'jq-datepicker.da': 'vendor/bootstrap-datepicker.da'
},
// Use shim for plugins that does not support AMD
shim: {
'bootstrap': ['jquery'],
'select2': ['jquery'],
'jq-datepicker': ['jquery'],
'jshashtable': ['jquery'],
'jquery.numberformatter': ['jquery', 'jshashtable']
},
});
Andere Tipps
Sie werden die verwenden möchten Plugin bestellen. Standardmäßig lädt RequiredJS Skripte so schnell wie möglich und sie können nicht in Ordnung geladen werden. Das Order -Plugin führt jedoch die Reihenfolge des Skriptlasts bei.
Wenn Sie den Optimierer verwenden, um Ihre Skripte zu optimieren, sollten Sie sowohl JQuery als auch das Plugin in das optimierte Skript einbeziehen.
Möglicherweise möchten Sie auschecken https://github.com/jquery-boilerplate/patterns
Es verfügt über einen guten JQuery -Plugin -Code von Boilerplate, der mit Reformenjs funktioniert.
Ich denke, Sie müssen Ihre JQuery auf 1.7 aktualisieren, bevor diese Muster für Sie funktionieren.