我正在做一个小的学习项目,遇到了一个我无法解决的问题。
我在谷歌浏览器开发控制台上收到以下错误消息:-
Uncaught TypeError: Object [object Object] has no method 'match'
lexer.nexthandlebars-1.0.0.beta.6.js:364
lexhandlebars-1.0.0.beta.6.js:392
lexhandlebars-1.0.0.beta.6.js:214
parsehandlebars-1.0.0.beta.6.js:227
Handlebars.parsehandlebars-1.0.0.beta.6.js:507
compilehandlebars-1.0.0.beta.6.js:1472
(anonymous function)handlebars-1.0.0.beta.6.js:1481
(anonymous function)scripts.js:103
jQuery.Callbacks.firejquery.js:1046
jQuery.Callbacks.self.fireWithjquery.js:1164
donejquery.js:7399
jQuery.ajaxTransport.send.callback
现在这在 Handlebars 脚本中显示为以下代码的错误
match = this._input.match(this.rules[rules[i]]);
Uncaught TypeError: Object [object Object] has no method 'match'
所以我从中得出的结论是,我的代码肯定有问题,而不是 Handlebars 代码,即使它处于测试阶段。
这是启动这一切的代码部分。
displayJobInfo: function( e ) {
var self = Actors;
self.config.jobInfo.slideUp( 300 );
var jobnum = $(this).data( 'job_id' );
$.ajax({
data: { job_id: jobnum }
}).then(function( results ) {
self.config.jobInfo.html( self.config.JobInfoTemplate( { jobs: results, job_id: jobnum }) ).slideDown(300);
});
console.log($(this).data( 'job_id' ));
e.preventDefault();
}
我花了几个小时尝试自己解决这个问题,并且在我网站的另一部分中得到了几乎相同的代码部分。
一些背景知识 - 我正在使用 php 从 mysql 中提取数据库,然后根据用户输入查询数据库,并使用 jquery 将字段覆盖回页面。
最佳答案
如果您尝试从 jquery 元素对象而不是字符串编译模板,就会发生这种情况。例如
<script id="my-template-script" type="text/template">...</script>
然后
var my_template = Handlebars.compile( $("#my-template-script") ); // WRONG
您可能希望这会立即爆发,但事实并非如此。相反,它应该是
var my_template = Handlebars.compile( $("#my-template-script").html() );
关于javascript - Jquery/Handlebars 错误消息 - Uncaught TypeError : Object [object Object] has no method 'match' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10330129/