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(...)?

questionAnswers(4)

yourAnswerToTheQuestion