2

2 つの Reed 求人サイト API を呼び出そうとしています。1 つは雇用主 ID でリストされたすべての求人を検索するためのもので、もう 1 つは最初の検索で見つかったすべての求人 ID のデータを取得するためのものです。データは最初の API 呼び出しから正常に取得され、関連データを問題なくページに配置するためのハンドルバーを取得できます。2 番目の API が呼び出され、データが JS コンソールに表示されますが、ページに配置されると、コンソールに「未定義のプロパティ 'jobTitle' を読み取れません」と表示されます。簡単なものになることはわかっていますが、私はJS / APIの世界に比較的慣れていないので、手で行うことができます!

これが私の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);
                        }
                    });



            }
        }

    });

});

優しくしてください、事前に感謝します:)

4

1 に答える 1

0

それを修正することができました!最後の3行に次の変更が必要です-

var info = data;
var infoHtml = reedsearchTemplate(info);
$("#results").append(infoHtml);

たくさんのテストをしましたが、私はそれの底にたどり着いたことをうれしく思います:)

于 2013-08-30T15:10:11.377 に答える