Jquery/Handlebars错误消息 - 未捕获TypeError:对象[object Object]没有方法'匹配'

mon*_*mps 6 javascript mysql ajax jquery handlebars.js

我正在做一个小小的学习项目,遇到了一个我无法解决的问题.

我在谷歌chromes开发控制台上收到以下错误消息: -

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
Run Code Online (Sandbox Code Playgroud)

现在,这出现了错误,车把上的代码中包含以下代码

match = this._input.match(this.rules[rules[i]]);
Uncaught TypeError: Object [object Object] has no method 'match'
Run Code Online (Sandbox Code Playgroud)

所以我从中得到的是,我的代码必须存在问题,而不是车把代码,即使它处于测试阶段.

以下是将它全部踢掉的代码部分.

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();
}
Run Code Online (Sandbox Code Playgroud)

我花了好几个小时尝试自己完成这个工作,并且在我的网站的另一部分中使用了几乎相同的代码段.

一点点背景 - 我使用php从mysql中提取数据库,然后根据用户输入和jquery查询数据库,将字段重叠到页面上.

Leo*_*opd 9

如果您尝试从jquery元素对象而不是字符串编译模板,则会发生这种情况.例如

<script id="my-template-script" type="text/template">...</script>
Run Code Online (Sandbox Code Playgroud)

然后

var my_template = Handlebars.compile( $("#my-template-script") );  // WRONG
Run Code Online (Sandbox Code Playgroud)

你可能会认为这会立即爆炸,但事实并非如此.相反它应该是

var my_template = Handlebars.compile( $("#my-template-script").html() );
Run Code Online (Sandbox Code Playgroud)