У меня есть объект JavaScript , и я пытаюсь добавить каждый из его названий курсов в модальный клонированный. Нажатие на категорию (т.е. животных) открывает модальное окно, которое показывает описание для животных, а нажатие на другую категорию отображает другое описание. Я хочу, чтобы на Животных нажимали и чтобы в модале отображались курсы «Лошадь», «Бурундук», «Сапсан» и т. Д.
У меня возникают некоторые проблемы, когда я пытаюсь console.log
Курсы, чтобы я мог их увидеть.
Делаем это:
trainingCrs = _categories[0].Courses.results.map(x => x.Title) // Works but only shows the Course Titles associated with Animals, as expected with the [0]
Но делает:
allTrain = _categories.Courses.results.map(x => x.Title) // Get an error saying 'results' are undefined
Есть ли причина, по которой results
выглядит как неопределенное? Я не уверен, почему _categories[0].Courses
работает, но _categories.Courses
не работает.
Вот как я добавляю описания и заголовки в мои div:
axios.get([abs-url] + "/getByTitle('Categories')/items?$select=Title,Description,Courses/Title,SortOrder&$expand=Courses&$orderby=Title&$top=1000",
{
method: "GET",
credentials: "include",
mode: "no-cors",
headers: {
"Accept": "application/json; odata=verbose"
}
}),
]).then(axios.spread((cat) => {
_categories = cat.data.d.results;
// irrelevant info here
this.loadCategories();
})).catch(error => {
console.log(error);
});
loadCategories(){
let categs = _categories,
trainingCrs = _categories[0].Courses.results.map(x => x.Title)
// allTrain = _categories.Courses.results.map(x => x.Title)
console.log(trainingCrs);
// console.log('allTrain' + allTrain);
let catBoxElems = "";
for (var i = 0; i < categs.length; i++) {
catBoxElems +=
"<div class='cat-box cat-num-" + i + "'data-target='#modal-id' data-toggle='modal' data-desc='" + categs[i].Description + "'data-crs='" + trainingCrs[i] + "'data-title='" + categs[i].Title + "'>" + catPic + "<br>" + categs[i].Title + "</div>";
} // trainingCrs[i].Title returns 'undefined', trainingCrs[i] does nnothing
$(document).find("#modal-id").off("shown.bs.modal").on("shown.bs.modal", function(e) {
$(document).find(".modal-title").html($(e.relatedTarget).data("title"));
$(document).find(".category-desc").html($(e.relatedTarget).data("desc"));
$(document).find(".training-titles-ul").html($(e.relatedTarget).data("crs")); // ------------------- //
}).on("hidden.bs.modal", function(e) {
$(document).find(".modal-title").html("");
});
let container = document.querySelector("div.top-training");
container.innerHTML = catBoxElems;
console.log(container);
$(".modal-img").append(catPic)
}
Фрагмент HTML:
<div class="modal-title" id="exampleModalLabel"></div>
<div class="modal-body">
<div class="category-desc">
<p></p>
</div>
<div class="training-titles">
<ul class="training-titles-ul"></ul>
</div>
</div>