Javascript-使用手柄创建表格
我有一个index.html,其中有一个表的div,我正在用javascript填充它:Javascript-使用手柄创建表格,javascript,handlebars.js,Javascript,Handlebars.js,我有一个index.html,其中有一个表的div,我正在用javascript填充它: <div class="table-responsive table-hover"> <table class="table" id="table"> </table> </div> 但是,即使我在函数createHtml中从控制台中记录的数组中获取所有对象,但只创建了表的第一行,这是为什么?我如何修复它 更新 我尝试过类似的方法,但我发现表未定义:
<div class="table-responsive table-hover">
<table class="table" id="table">
</table>
</div>
但是,即使我在函数createHtml
中从控制台中记录的数组中获取所有对象,但只创建了表的第一行,这是为什么?我如何修复它
更新
我尝试过类似的方法,但我发现表未定义:
var tableTemplate = require('../../templates/table.handlebars');
var createHtml = function(data) {
console.log(data);
table += tableTemplate({
avatar_url: data.owner.avatar_url,
full_name: data.full_name,
homepage: data.homepage,
score: data.score
});
}
export function createTable(repositories, page) {
var itemsPerPage = 20,
offset = page*20;
table = document.querySelector('#table');
table.innerHTML = '';
repositories.slice(offset, offset+itemsPerPage).forEach(createHtml);
}
您正在为每个迭代使用innerHTML替换HTML,从而丢失上一次迭代中的HTML。在forEach外部连接所有字符串并设置innerHTML一次。更好的选择(仅使用局部变量)是使用和
您正在为每个迭代使用innerHTML替换HTML,从而丢失上一次迭代中的HTML。在forEach外部连接所有字符串并设置innerHTML一次。更好的选择(仅使用局部变量)是使用和
你能不能给我提供一个代码示例,不确定,如何做到这一点,我将不胜感激!谢谢我可以,如果你尝试一些东西,展示你所尝试的。基本上,您需要在createHtml外部定义一个字符串,并将其连接到createHtml内部,您需要使用连接在一起的字符串变量从createHtml外部设置innerHTML。我尝试了一些方法,我想知道这是否是您的意思。就是不能让它工作。我已经用我的尝试更新了我的问题。@Leff在您的尝试中,您应该将所有HTML字符串连接到一个
tableHTML
变量中,然后只有在forEach完成后,才设置table.innerHTML=tableHTML
,我添加了一个更优雅的解决方案。你能给我提供一个代码示例吗?不确定,如何做到这一点,我将不胜感激!谢谢我可以,如果你尝试一些东西,展示你所尝试的。基本上,您需要在createHtml外部定义一个字符串,并将其连接到createHtml内部,您需要使用连接在一起的字符串变量从createHtml外部设置innerHTML。我尝试了一些方法,我想知道这是否是您的意思。就是不能让它工作。我已经用我的尝试更新了我的问题。@Leff在您的尝试中,您应该将所有HTML字符串连接到一个tableHTML
变量中,然后只有在forEach完成后,您才能设置table.innerHTML=tableHTML
,我添加了一个更优雅的解决方案。
var tableTemplate = require('../../templates/table.handlebars');
var createHtml = function(data) {
console.log(data);
var table = document.querySelector('#table');
table.innerHTML = tableTemplate({
avatar: data.owner.avatar_url,
name: data.full_name,
homepage: data.homepage,
score: data.score
});
}
array.forEach(createHtml);
var tableTemplate = require('../../templates/table.handlebars');
var createHtml = function(data) {
console.log(data);
table += tableTemplate({
avatar_url: data.owner.avatar_url,
full_name: data.full_name,
homepage: data.homepage,
score: data.score
});
}
export function createTable(repositories, page) {
var itemsPerPage = 20,
offset = page*20;
table = document.querySelector('#table');
table.innerHTML = '';
repositories.slice(offset, offset+itemsPerPage).forEach(createHtml);
}
var tableTemplate = require('../../templates/table.handlebars');
document.querySelector('#table').innerHTML = array.map(function(data) {
return tableTemplate({
avatar: data.owner.avatar_url,
name: data.full_name,
homepage: data.homepage,
score: data.score
});
}).join('');