Привет всем и заранее спасибо, что нашли время.
Я экспериментирую с Sammy.js + Mustache. Итак, я создал HTML-файл, который включает в себя все, что там должно быть:
<html>
<head>
<script type="text/javascript" src="jquery-1.6.3.js"></script>
<script type="text/javascript" src="sammy.js"></script>
<script type="text/javascript" src="mustache.js"></script>
<script type="text/javascript" src="sammy.mustache.js"></script>
<script type="text/javascript" src="application.js"></script>
</head>
<body>
<div id="main">
</div>
</body>
</html>
Я взял файлы сэмми и усов с их сайтов на github.
В application.js
есть просто:
$(function() {
var app = $.sammy('#main', function() {
this.use('Mustache','ms');
var search = {};
this.get('#search', function() {
var ctx = this;
ctx.load('data/server.json')
.then(function(server) {
ctx.render('searchForm.ms', server);
});
});
});
app.run();
});
searchForm.ms
— это очень простой шаблон для усов.
Он правильно загружает json, затем загружает шаблон, но получает экземпляр Document. Он передает этот экземпляр документа в Mustache, который вместо этого ожидает строку, поэтому он завершается ошибкой с haystack.indexOf is not a function
, потому что стог сена — это документ, а не строка.
Я также попытался изменить searchForm.m
s на searchForm.txt
и получил ту же ошибку. Я использую последнюю версию Firefox, работаю с file://
URL-адресами.
Однако этот пример настолько прост, что не должен быть ошибочным; где я не прав?