Wywoływanie metod w modułach RequireJs z elementów HTML, takich jak moduły obsługi onclick
Zmieniam projekt ze „starej” struktury modułu przeglądarki na „nową” przeglądarkęlub-javascript po stronie serwera struktura modułu zrequire.js.
Na kliencie używam hostowanego jQuery poza siedzibą, więc zacząłem od przykładu podanego w„use priority config” technika README:
<code><title>My Page</title> <script src="scripts/require.js"></script> <script> require({ baseUrl: 'scripts', paths: { jquery: 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min', jqueryui: ..., ... ... // bunch more paths here }, priority: ['jquery'] }, [ 'main' ]); </script> </code>
To działa dobrze. Ale chciałbym eksportować funkcjonalność z głównej do strony HTML. Na przykład:
<code><a class="button" href="#" onclick="MyApi.foo();"> <img src="foo.png" alt="foo" />Click for: <b>Foo!</b> </a> </code>
Przed dopasowaniem do wzorca modułu AMD ujawniłem funkcjonalność z moich różnych plików, tworząc obiekt słownika w przestrzeni globalnej:
<code>// main.js var MyApi = {}; jQuery(document).ready(function($) { // ...unexported code goes here... // export function via MyApi MyApi.foo = function() { alert("Foo!"); }; }); </code>
Ale nie wiem, jakie jest właściwe podejście w require.js. Czy można umieścić HTML bardziejrequire
oświadczenia wewnątrz<script>
tagi, a następnie moduły nazw, aby można było z nich korzystać z poziomu strony internetowej? Lub powinno to być zawsze wykonywane dynamicznie w main.js, jak$('#foobutton').click(...)
?