【发布时间】:2011-09-13 12:29:23
【问题描述】:
大家好,提前感谢您抽出宝贵时间。
我正在试验 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.ms 更改为 searchForm.txt 并得到同样的错误。我正在使用最新版本的 Firefox,正在处理 file:// 网址。
然而,这个例子很简单,应该不会失败;我哪里错了?
【问题讨论】:
-
使用 Mustache 和 jquery 得到同样的错误。你能发布 searchForm.ms 模板的内容吗?