Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

<script> tags inside Underscore.js templates?

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.

like image 447
dani Avatar asked Nov 30 '11 15:11

dani


Video Answer


2 Answers

<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.

like image 99
Igor Shubin Avatar answered Nov 03 '22 01:11

Igor Shubin


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.

like image 28
ThiefMaster Avatar answered Nov 03 '22 02:11

ThiefMaster