JSRender - динамическое изменение шаблона

Я использую JSRender для рендеринга шаблона.

Я использую первый пример в демо -

<!DOCTYPE html>
<html>
<head>

<script src="http://code.jquery.com/jquery.js" type="text/javascript"></script>
<script src="../../jsrender.js" type="text/javascript"></script>
<link href="../resources/demos.css" rel="stylesheet" type="text/css" />
</head>


<body>
<a href="../demos.html">JsRender Demos</a><br />
<h3>Render template against local data</h3>

<script id="movieTemplate" type="text/x-jsrender">

<!-- This thing i want to change dynamically -->
<div>
{{:#index+1}}:<b>{{:Close}}</b> ({{:Open}})
</div>

</script>



<div id="movieList"></div>

<script type="text/javascript"> 
var movies = [
{ name: "The Red Violin", releaseYear: "1998" },
{ name: "Eyes Wide Shut", releaseYear: "1999" },
{ name: "The Inheritance", releaseYear: "1976" }
];

// Render the template with the movies data and insert  
// the rendered HTML under the "movieList" element
$( "#movieList" ).html(
    $( "#movieTemplate" ).render( movies )
);

</script>
</body>
</html>

Мне нужно изменить шаблон во время выполнения. Это <div> содержимое в <script id=movieTemplate">

Может ли кто-нибудь помочь мне решить эту проблему.

Спасибо, что поделились своей мудростью.


person IrfanRaza    schedule 24.05.2012    source источник


Ответы (1)


Вы можете загрузить шаблон для eample через $.getJSON, а затем сделать что-то вроде

$.getJSON('http://YourServer.com/yourTemplate.txt', function(res) {
$.templates({ tmpl: res });
$("#movieList").html($.render.tmpl(movies ));
});

ХТН

person Yamil Bracho    schedule 24.05.2012
comment
Спасибо Ямиль! но я не могу понять ваш код. Тем временем я попробую код. Спасибо еще раз! - person IrfanRaza; 25.05.2012
comment
Теперь понял код, но все еще не работает для меня. Я думаю, мне нужно больше работать. - person IrfanRaza; 25.05.2012
comment
Хорошо, вот моя РАБОЧАЯ версия: $.ajax({ type: 'GET', url: 'wool/stuff/ tmpl_reload.txt', dataType: текст, успех: function (data, textStatus) { $.template(tadatempl, data); $(.gradient).html($.tmpl(tadatempl,dataItems)); } }) - person scythargon; 30.11.2012