JSRender: Поведение изменилось при регистрации именованного шаблона?
Раньше я мог хранить шаблон JSRender в форматированном тексте в html-файле и хранить на сервере. Затем я использовал $.get для извлечения моего шаблона и рендеринга.
Мой вспомогательный метод похож на: Сохранение шаблона jsRender в отдельном файле js:
function LoadJSRenderTemplate(container, templateUrl, myArray) {
$.when($.get(templateUrl))
.done(function(tmplHtml) {
$.templates({ MyTemplate: tmplHtml });
container.html($.render.MyTemplate(myArray));
});
}
Мой шаблон выглядит следующим образом:
<div class="ResultTableRow">
<span>{{>Distributor}}</span>
{{if FuelType}}
<span>
{{for FuelType}}
{{>#data}}<br />
{{/for}}
</span>
{{/if}}
</div>
Сегодня я запустил другой проект и использовал последний jsrender, внезапно та же самая техника перестала работать... urrr. Теперь мне нужно сжать мой легко читаемый шаблон в однострочном js-файле, следуя этому http://www.jsviews.com/#samples/jsr/composition/remote-tmpl образцу. Хотя это работает, но я не хочу потерять легкость чтения шаблона с отступом, к которому я привык.
Зачем? А что изменилось?
1 ответ
Это прекрасно работает для меня:
<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery.js" type="text/javascript"></script>
<script src="http://www.jsviews.com/download/jsviews.js"></script>
</head>
<body>
<div id="container"></div>
<script type="text/javascript">
var myArray = [
{Distributor: "a", FuelType:"qq"},
{Distributor: "b"},
{Distributor: "c", FuelType:"rr"}
];
$.get("file.html")
.done(function(tmplHtml) {
$.templates({ MyTemplate: tmplHtml });
$("#container").html($.render.MyTemplate(myArray));
});
</script>
</body>
</html>
file.html
<div class="ResultTableRow">
<span>{{>Distributor}}</span>
{{if FuelType}}
<span>
{{>FuelType}}<br />
</span>
{{/if}}
</div>
(Я немного упростил ваш шаблон).
См. Также Сохранение шаблона jsRender в отдельном файле js - на случай, если возникнет проблема с get() vs ajax(), введите "text"