【发布时间】:2018-12-06 09:03:54
【问题描述】:
我获取异步请求的数据。我将数据传递给函数并将它们按行分解。如何将行传递给模板
async function upComing() {
const { results } = await $.ajax ("https://api.themoviedb.org/3/movie/upcoming?api_key=******************&language=en-US&page="+numberPage);
const { genres } = await $.ajax ("https://api.themoviedb.org/3/genre/movie/list?api_key=******************&language=en-US");
const movies = results.map(({genre_ids, ...rest}) => {
const filteredIds = genres.filter(gen => genre_ids.includes(gen.id));
const genreNames = filteredIds.map(gen_id => gen_id.name);
return {
...rest,
genreNames,
};
});
const splittedArray = splitArray(movies);
function splitArray(arr) {
var result = [];
let row = [];
for (let i = 0; i < arr.length; i++) {
const rowIndex = result.length;
const len = rowIndex & 1 ? 2 : 4 ;
row.push(arr[i]);
if (row.length === len) {
result.push(row);
row = [];
}
}
if (row.length) {
result.push(row);
}
return result;
}
const source = document.getElementById("item").innerHTML;
const template = Handlebars.compile(source);
const html = template(splittedArray);
var numberPage = 1;
$(".content_movie").html(html);
upComing();
【问题讨论】:
-
您好,我想帮助您,但是您能提供一个json的例子吗?
-
1. (7) [数组(4), 数组(2), 数组(4), 数组(2), 数组(4), 数组(2), 数组(2)] 0:(4) [{…}, { …}, {…}, {…}] 1:(2) [{…}, {…}] 2:(4) [{…}, {…}, {…}, {…}] 3:( 2) [{…}, {…}] 4:(4) [{…}, {…}, {…}, {…}] 5:(2) [{…}, {…}] 6:( 2) [{…}, {…}]
-
嗨!还有一个问题。你用这个吗?常量 len = rowIndex & 1 ? 2 : 4;
-
我一直在努力解决你的问题,发现你是怎么做到的,但是还有一个问题,你还需要我的帮助吗?
-
@VadimNikiforov 如果您查看我的代码github.com/slemik1/movie42,也许会更清楚我想要做什么
标签: javascript jquery templates async-await handlebars.js