Ошибка зацикливания списка списка в JavaScript - PullRequest
0 голосов
/ 06 мая 2019

Я возвращаю из контроллера с Ajax модель, для которой установлено значение toArray, чтобы манипулировать данными.Однако в этом списке, скажем, 2 объекта, в каждом объекте задание может иметь список изображений.Я могу перебрать объект, но когда я перебираю список в этом объекте с именем свойства, это говорит о том, что имя не существует, что в моем случае, я уверен, что оно существует.

posts.FindJobs.JobPictures - список с несколькими байтами в каждом индексе.enter image description here This is the error img that I get in DOM

это мой код.

  $.each(posts.FindJobs, function (i, posts) {


                console.log(posts);
                $(".job-container").append(`


                        <li class="separate-job" id="All-Jobs-Id" value="` + posts.jobId + `">
                            <div class="content-li-All-Jobs">
                                <h2 class="content-li-All-headline" id="headline-for-Update">`+ posts.Headline + `</h2>
                                <a class="btn btn-success bid-for-job" value="`+ posts.jobId + `" href="#">Bid now</a>
                                <div class="user">
                                    <blockquote class="blockquote">
                                        <p class="mb-0">
                                            <div class="about-job">`+ posts.About + `</div>
                                        </p>
                                        <div class="blockquote-footer">
                                            <cite>-`+ posts.Username + `</cite>
                                        </div>
                                    </blockquote>
                                </div>
                                <div class="pictures-li">
                                   `+$.each(posts.FindJobs.JobPictures, function (i, pictures) {
                                        console.log(pictures);
                                    })+`
                                </div>

                                <div class="job-date-li">
                                    Posted

                                </div>
                                <div class="-job-town">Area | <span class="city">`+posts.JobCity+`</span></div>
                            </div>
                        </li>



`)

            });

1 Ответ

1 голос
/ 06 мая 2019

Проблема заключается в том, что вы пытаетесь получить доступ к JobPictures на FindJobs напрямую, вместо этого вам нужно перебрать JobPictures каждой должности.

Вместо повторного использования имени переменной posts, я рекомендую использовать другое имя переменной, например post i.e.:

Измените ваш внешний цикл на

$.each(posts.FindJobs, function (i, post) { // <-- use post as the inner variable

А затем вы можете просмотреть текущие сообщения JobPictures с помощью:

$.each(post.JobPictures, function (i, pictures) { // <--- JobPictures is on post

уточнить:

Вызов posts.FindJobs.JobPictures подразумевает следующую структуру:

{
  FindJobs: {
    JobPictures: [ ... ]
  }
}

Когда у вас действительно есть:

{
  FindJobs: [ // <-- this is an array your outer loop is going over
    { jobId: 1, JobPictures: [ ... ], ... } // <-- your job items have their own JobPictures array
    { jobId: 2, JobPictures: [ ... ], ... }
    ...
  ]
}

К которому будет обращаться posts.FindJobs[i].JobPictures

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...