получить доступ к обработчику onclick кнопки, содержащейся в шаблонной странице руля - PullRequest
0 голосов
/ 13 апреля 2020

Я работаю над веб-приложением, которое использует Handlebars. Я пытаюсь получить доступ к обработчику события onclick кнопки из файла scripts.js (который содержит некоторые служебные сценарии, функции и т. Д. c). У меня есть main.handlebars, который выглядит следующим образом:

<!DOCTYPE html>
<html lang="en">
<head>
    ... stuff ...
    <title>I'm Stupid</title>
</head>
<body >
    ... navbar ...

    <div class="container">
        {{{body}}}         <--- Important!
    </div>

    ... footer ..
</body>
</html>

Это еще один файл, который передается в {{{main}}}:

... some html ...
<input type="button" id="submit" class ="button_img_only flex-wrap btn-lg" placeholder="amount" value ="Say Hi!"/>
... more html ...

У меня есть каталог, который содержит служебные файлы javascript. В файле с именем stripe_scripts.js я пытаюсь получить доступ к обработчику события onclick кнопки submit. Однако я получаю нулевое возвращаемое значение, которое, как я предполагаю, означает, что кнопка не была найдена?

У меня такие вопросы: Как получить доступ к обработчику кнопок onclick? После некоторого поиска в Google я нашел решение, которое выглядит следующим образом:

<script id="text-template" type="text/x-handlebars-template">
  {{{main}}}      <-- ??????????????
</script>

, а затем, чтобы получить доступ к кнопке отправки, используйте это:

var source   = document.getElementById('text-template').innerHTML;
var template = Handlebars.compile(source);
var context = {body: tbody};
var html    = template(context);

document.getElementById('submit').innerHTML = html;
// bind the submit buttons onclick event handler to handle clicks

Как бы я использовал вышеупомянутый шаблон с мой существующий проект? Нужно ли помещать код HTML всей моей страницы в заполнитель {{{main}}} внутри тега скрипта?

Есть ли лучший способ сделать это с помощью Handlebars? (Исходя из этого: https://handlebarsjs.com/installation/when-to-use-handlebars.html#when - руль не для использования , руль не должен был использоваться в первую очередь). Должен ли я отойти от руля и использовать одностраничную архитектуру с чем-то вроде Angular или React? Очевидно, я новичок в веб-разработке, и я мог бы использовать некоторую помощь.

...