[英]Javascript function returning undefined for template helper
創建一個模板助手來返回要在DOM中顯示的變量,而我的函數返回的是未定義的,因此不影響DOM。 盡管我覺得這似乎是一個具有約束力的問題,但不確定原因。 這是代碼:
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返回為undefined。 讓它總是返回未定義狀態我在做什么錯?
.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
。 該收益適用於您的匿名函數。 (您有function(job)
。
為了獲得該價值,您需要更多類似這樣的東西:
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;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.