我一直在为Handlebars.compile()调用获取TypeError。我试着按照其他一些帖子中的建议将jQuery.noConflict()添加到不同的地方,但没有成功。
TypeError: 'undefined' is not a function (evaluating 'Handlebars.compile('test')')代码是:
$('.location-typeahead').typeahead(
{
name: 'states',
displayKey: 'value',
source: states(),
templates: {
header: '<h4 class="location-typeahead-header">Title</h4>',
suggestion: Handlebars.compile('test')
}
}
);如果我删除整个"suggestion“模板参数,我JS就能正常工作。
发布于 2014-02-19 12:16:41
您可能已经包含了Handlebar的运行时版本。如果你想在客户端编译模板,你需要包含完整的版本。
或者,您可以预编译模板--然后您只需要运行时。
发布于 2014-09-20 00:41:21
不要试图做一个简单的模板而折断你的脖子。所有的文档都指向使用Handlebar模板--但在根级别,模板的“suggestion”属性必须是一个接受数据对象和环境的函数,然后返回格式化的字符串标记。
参见下面的有效示例,对格式/布局进行一些细微的调整-只要你在数据源中返回所需的数据,这对于更高级的应该是有效的。
//where data is the single data object returned
//and environment is the typeahead context
suggestion: function(data, env) {
return "<p><strong>" + data.owner_name + "</strong> – " + data.name + "</p>";
}https://stackoverflow.com/questions/21842336
复制相似问题