我从数据库中检索用户列表并将其显示在JSP中。每个用户都具有与其关联的状态(活动或非活动),并且可以基于单击激活或停用用户时的复选框选择来更新状态。我们如何使用Google闭包动态地为每个用户呈现一个复选框?并且必须有一个父项复选框,在选中时,还会检查所有其他复选框,并且可以激活或停用所有用户?
答案 0 :(得分:2)
通过“动态”我假设你的意思是在JavaScript中? Google Closure不在JSP中运行。
var users = [{ 'id': 'myId', 'activated': true }];
var usersLength = users.length;
var checkboxes = [];
for (var i = 0; i < usersLength; i++) {
var user = users[i];
var checkbox =
goog.dom.createDom(
goog.dom.TagName.INPUT, { 'type': 'checkbox', 'name': user.id });
checkbox.checked = user.activated;
checkboxes.push(checkbox);
}
var master = goog.dom.createDom(goog.dom.TagName.INPUT, { 'type': 'checkbox' });
goog.events.listen(
master,
goog.events.EventType.CLICK,
function (event) {
var isChecked = event.target.checked;
goog.array.forEach(checkboxes, function(ck) { ck.checked = isChecked; });
}
);