Reputation: 5000
I'm having trouble getting nested JavaScript inside Underscore templates to run.
<script type="text/template" id="myTemplate">
<h3><%= heading %></h3>
<div class="container"></div>
//THIS DOES NOT WORK --->
<script type="text/javascript" charset="utf-8">
$(".container").html("Test")
</script>
//END
</script>
Is this at all possible or how could I work around the issue? Thanks.
Upvotes: 9
Views: 7611
Reputation: 3210
I have used this method for templating an html page.
<script type="text/template" id="mypage">
<!DOCTYPE html>
<html>
<body>
<script type="text/javascript" src="jquery.min.js"><%= "<"+"/script>" %>
</body>
</html>
</script>
Upvotes: 0
Reputation: 10726
<script type="text/template" id="myTemplate">
<h3><%= heading %></h3>
<div class="container"></div>
//THIS WORK :) --->
<% print("<sc" + "ript type='text/javascript'>"); %>
$(".container").html("Test")
<% print("</sc"+"ript>"); %>
//END
</script>
I had to do so, because I had to generate an unknown number of functions.
Upvotes: 22
Reputation: 318518
Javascript certainly doesn't belong into a template. So it only makes sense that they do not work.
If you need to execute scripts related to the template, put them in a function and call them when you render the template.
Upvotes: 5