Подтвердить что ты не робот

Внедрение 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>
4b9b3361

Ответ 1

Я просто немного поиграл и смог заставить его работать следующим образом:

{{:"<scr" + "ipt type=&quot;text/javascript&quot;>"}}
    var chartObj = new MyChart("{{html:chartId}}");
    chartObj.render();
{{:"</scr" + "ipt>"}}

Возможно, это не самое элегантное решение, но когда я помещаю там alert, он запускается.