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"

Другие вопросы по тегам