简体   繁体   中英

handlebars: why this code doesn't work?

I am new to handlehars, and feel the basic tutorials are not very newbie friendly. I have to put pieces together and the following code seems not working. The html is generated correctly which means it does work but nothing shows up.

<!DOCTYPE html>
<html lang="en">
<head>
<title>test handlebars</title>
<meta charset="UTF-8">

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/2.0.0/handlebars.js"></script>

<script id="entry-template" type="text/x-handlebars-template">
  <div class="entry">
    <h1>{{title}}</h1>
    <div class="body">
      {{body}}
    </div>
  </div>
</script>

</head>
<body>
<div class="container"></div>

<script>
$(document).ready(function(){
  var source = $("#entry-template").html();
  var template = Handlebars.compile(source);
  var context = {title: "My New Post", body: "This is my first post!"};
  var html = template(context);
  console.log(html);
  $(".container").innerHTML = html;
});
</script>

</body>
$(".container").innerHTML = html;

You're mixing vanilla JS and jQuery. Either set the HTML the vanilla way,

document.querySelector(".container").innerHTML = html;

or the jQuery way:

$(".container").html(html);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM