大家好,提前感谢您抽出宝贵的时间。
我正在试验 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 站点获取了 sammy 和 mustache 文件。
里面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
是一个非常简单的 Mustache 模板。
它正确加载 json,然后加载模板,但它接收到一个 Document 实例。它将这个 Document 实例传递给 Mustache,而 Mustache 需要一个字符串,所以它失败了,haystack.indexOf is not a function
因为 haystack 是一个文档,而不是一个字符串。
我也尝试将searchForm.m
s 更改为searchForm.txt
并得到相同的错误。我正在使用最新版本的 Firefox,正在处理file://
url。
然而,这个例子非常简单,它不应该失败;我哪里错了?