这是我正在尝试的代码:http://jsfiddle.net/sbrsK/10/
在jsfiddle中运行正确,没有任何错误
尝试通过我的计算机上本地的网络服务器运行相同的程序不起作用。
正在加载以下文件:
在火狐浏览器中我收到此错误:
TypeError: this._input is null @ http://cloud.github.com/downloads/wycats/handlebars.js/handlebars-1.0.0.beta.6.js:364
镀铬我收到此错误:
Uncaught TypeError:Cannot call method 'match' of null
under match = this._input.match(this.rules[rules[i]]); in handlebars-1.0.0.beta.6.js
早些时候提出了一个非常相似的问题link,但似乎仍然开放。
那么问题来了,在jsfiddle中正常工作的情况下,为什么会出现这个错误呢?
在本地运行这个的正确方法是什么?
该错误意味着#entry-template
当你尝试使用它时,它不在 DOM 中:
var source = $("#entry-template").html(); // There is no #entry-template in the DOM here
var template = Handlebars.compile(source);
这意味着你最终会尝试编译undefined
作为车把模板,但这是行不通的。您可以通过运行以下命令来查看错误:
http://jsfiddle.net/ambigously/LprDR/
打开控制台。
jsfiddle 之所以能工作,是因为在加载 DOM 后所有代码都在运行,这是默认的 jsfiddle 行为。
您的实际代码中可能存在加载顺序问题,请尝试将其包装在$(function() { /*...*/ })
包装纸。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)