2
我試圖調用兩個Reed job site API,一個是搜索由僱主ID列出的所有作業,第二個是檢索所有作業ID的數據在最初的搜索中找到。數據通過第一次API調用即可完成,我可以獲得句柄以將相關數據放在頁面上,而不會出現問題。第二個API會調用並且數據在JS控制檯中可見,但是當它放在頁面上時,控制檯顯示「無法讀取屬性'jobTitle'undefined」。我知道這肯定是一件簡單的事,但我對JS/API的世界比較陌生,所以可以用一隻手做!在API中調用API - jQuery/Handlebars
這裏是我的html
<div id="results">
<table>
<tbody>
<script id="reedsearch-template" type="text/html">
<tr>
<th>{{ jobTitle }}</th>
<td>{{ locationName }}</td>
<td>£{{ minimumSalary }} - £{{ maximumSalary }}</td>
<td>{{ jobUrl }}</td>
</tr>
</script>
</tbody>
</table>
</div>
這裏是我的JS(刪除我的API密鑰)
$(document).ready(function() {
var reedsearchHtml = $("#reedsearch-template").html();
var reedsearchTemplate = Handlebars.compile(reedsearchHtml);
$.ajax({
type: "get",
async: true,
url: "http://www.reed.co.uk/api/1.0/search?employerId=p8799",
beforeSend: function(xhr) {
xhr.setRequestHeader("Authorization", "Basic " + btoa("API KEY:"))
},
success: function (data) {
console.log(data.results);
for (var i = 0; i < data.results.length; i++) {
var job = data.results[i];
var jobHtml = reedsearchTemplate(job);
$("#results").append(jobHtml);
var reedUrl = "http://www.reed.co.uk/api/1.0/jobs/";
var id = job.jobId
var url = reedUrl + id;
$.ajax({
type: "get",
async: true,
url: url,
beforeSend: function(xhr) {
xhr.setRequestHeader("Authorization", "Basic " + btoa("API KEY:"))
},
success: function (data) {
console.log(data);
var jobDetails = data.results;
var detailsHtml = reedsearchTemplate(jobDetails);
$("#results").append(detailsHtml);
}
});
}
}
});
});
請溫柔,在此先感謝:)
你應該看看的承諾。 – Abilash
這是一個偉大的... https://github.com/kriskowal/q – Abilash
什麼是'data.results'?你能複製/粘貼一個例子嗎?我假設它可能是一個數組,並且你沒有訪問第一個項目。 '[0]' – ahren