Внедрение script с помощью шаблона jsrender
Я хотел бы использовать переменную из моего шаблона jsrender, чтобы создать фрагмент javascript, но я не могу понять, как разместить <script type="text/javascript">
внутри моего <script id="data-item-tpl" type="text/x-jsrender">
Надеюсь, что ниже будет достаточно ясно. В приведенном ниже коде создается Uncaught SyntaxError
. Если я удалю теги из встроенного script, тогда он просто будет напечатан на странице в виде текста.
В приведенном ниже коде я пытаюсь сгенерировать div с id 'chartId', а затем script, который заполнит этот div содержимым через объект MyChart.
<script id="data-item-tpl" type="text/x-jsrender">
<div class="item">
<div class="graphs">
<ul class="thumbnails">
{{for graphs}}
<li><div class="thumbnail"><img src="{{html:url}}" width="190" height="120" /><p>{{html:graphTitle}}<br />{{html:value}}</p></div></li>
{{/for}}
<!-- Here we insert both the placeholder for, and the javascript to populate charts -->
<li><div id="{{html:chartId}}" style="width:120;height:190px;"></div></li>
<script type="text/javascript">
var chartObj = new MyChart("{{html:chartId}}");
chartObj.render();
</script>
</ul>
</div>
...
</script>
Ответы
Ответ 1
Я просто немного поиграл и смог заставить его работать следующим образом:
{{:"<scr" + "ipt type="text/javascript">"}}
var chartObj = new MyChart("{{html:chartId}}");
chartObj.render();
{{:"</scr" + "ipt>"}}
Возможно, это не самое элегантное решение, но когда я помещаю там alert
, он запускается.