返回模板帮助器的未定义Javascript函数
创建一个模板帮助器以返回要在DOM中显示的变量,而my函数返回的是未定义的,因此不会影响DOM。不太清楚为什么,尽管我觉得这是一个有约束力的问题。代码如下:返回模板帮助器的未定义Javascript函数,javascript,jquery,Javascript,Jquery,创建一个模板帮助器以返回要在DOM中显示的变量,而my函数返回的是未定义的,因此不会影响DOM。不太清楚为什么,尽管我觉得这是一个有约束力的问题。代码如下: supportNumber: function(){ var jobSupportNumber = state.user.jobs.each(function(job){ console.log(jobOrder.get("jobId")); conso
supportNumber: function(){
var jobSupportNumber = state.user.jobs.each(function(job){
console.log(jobOrder.get("jobId"));
console.log("test");
console.log(job.get("id"));
if(jobOrder.get("jobId") == job.get("id")){
var jobNumber = job.get("supportNumber");
console.log(jobNumber);
return jobNumber;
}
else{
console.log("this fired");
}
});
console.log(jobSupportNumber);
return jobSupportNumber;
}
我正在对控制台进行大量日志记录,以确保返回值,并且在返回最终return语句之前一直在返回某些内容,该语句将jobSupportNumber返回为未定义。让它始终以未定义的形式返回,我做错了什么 .each()
不返回它所包装的任何函数的值。内部函数结果仅用于控制.each()
循环
试试这个:
supportNumber: function(){
var jobSupportNumber = null;
state.user.jobs.each(function(job){
if(jobOrder.get("jobId") == job.get("id")){
jobSupportNumber = job.get("supportNumber");
return false; // tell .each() to quit looping
}
});
return jobSupportNumber;
}
根据那里的代码,
state.user.jobs.each()
不会返回jobNumber
。该返回适用于匿名函数。(您有功能(作业)
要获得该值,您需要以下内容:
supportNumber: function(){
var jobSupportNumber;
state.user.jobs.each(function(job){
console.log(jobOrder.get("jobId"));
console.log("test");
console.log(job.get("id"));
if(jobOrder.get("jobId") == job.get("id")){
var jobNumber = job.get("supportNumber");
console.log(jobNumber);
/* Set the value and just plain return, instead */
jobSupportNumber = jobNumber;
return;
}
else{
console.log("this fired");
}
});
console.log(jobSupportNumber);
return jobSupportNumber;
}
你的
state.user.jobs.each()
显然没有返回任何内容。你希望jobSupportNumber
是什么?它应该返回jobNumber,我知道它有一个值,因为在返回之前控制台日志中给出了我想要的内容。你在函数中有一个额外的“return”,这是导致它的原因吗?supportNumber:function(){var jobSupportNumber;state.user.jobs.forEach(函数(作业){if(jobOrder.get(“jobId”)==job.get(“id”){jobSupportNumber=job.get(“supportNumber”);}};返回jobSupportNumber;};无法从“each”循环中返回值。只需将其分配给变量,然后返回该变量。请参阅我的其他注释。