@ Префикс, спасибо за внимание, я только что прочитал этот комментарий от вас, извините за задержку. В любом случае, это снова!
ел бы использовать mustache.js с jQuery в моем приложении HTML5, но я не могу заставить все компоненты работать вместе. Каждый файл найден, здесь нет проблем (шаблон загружен прямо сейчас, я вижу его значение в отладчике Firebug).
Вот мой index.html:
<!DOCTYPE html>
<html lang="fr">
<head><meta charset="utf-8"></head>
<body>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
<script src="../js/jquery.mustache.js"></script>
<script src="../js/app.js"></script>
<div id="content"></div>
</body>
</html>
Вот мой файл app.js:
$(document).ready(function() {
var template = $.get('../templates/article.mustache');
$.getJSON('../js/article.json', function(view) {
var html = Mustache.to_html(template, view);
$("#content").append(html);
});
});
Файл jquery.mustache.js - это файл, созданный изhttps://github.com/janl/mustache.js :
/*
Shameless port of a shameless port
@defunkt => @janl => @aq
See http://github.com/defunkt/mustache for more info.
*/
;(function($) {
// <snip> mustache.js code
$.mustache = function(template, view, partials) {
return Mustache.to_html(template, view, partials);
};
})(jQuery);
Отмечается отображается. Firebug говорит мне
Усы не определены
Смотрите захват:
Я знаю, что чего-то не хватает, но не могу сказать, что.
Благодарю.
РЕДАКТИРОВАТЬ: Правильный и полный ответ наминимальный Примером является следующее:
напишите шаблон в скрипте, не загружайте его из файлаТо же самое для данных JSONпрочитайте, как генерируется jQuery, и используйте$.mustache.to_html
функция вместо (задокументировано на github)Mustache.to_html
(благодаря@ mikez302)рефакторинг ', пока вы не уроните$(document).ready(function() { var template = " ... {{title}} ... "; var json = {title: "titre article" } var article = $.mustache(template, json); $("#content").append(article); });
Но JSON легко прочитать из другого файла:
$(document).ready(function() { var template = " ... {{title}} ... "; $.getJSON('../js/article.json', function(view) { var article = $.mustache(template, view); $("#content").append(article); }); });
Наконец, вы также можете прочитать шаблон из файла:
$(document).ready(function() { $.getJSON('../js/article.json', function(view) { $.get("../templates/article.mustache", function(template) { var article = $.mustache(template, view); $("#content").append(article); }); }); });
Рабочий пример (без проблем с порядком загрузки):
$(document).ready(function() { $.getJSON('../js/article.json', function(model) { return onJSON(model); }); }); function onJSON(model) { $.get("../templates/article.mustache", function(view) { var article = $.mustache(view, model); $("#content").append(article); }); }