我有一些类别标题,每个类别标题都附加到自己的div中。单击任何一个div都会打开一个模式,并且计划还将该类别的标题也添加到该模式中。
最初,我在for循环中拥有标题 <p-table #dt>
...
<tr>
<th *ngFor="let col of columns" [ngSwitch]="col.filterType" class=showOverflow pResizableColumn>
...
<p-multiSelect *ngSwitchCase="'DropDown'" [options]="masterSearchTypes" defaultLabel="All"
[(ngModel)]="filterDefault" (onChange)="dt.filter($event.value, col.field, 'in' )"></p-multiSelect>
</th>
</tr>
...
</p-table>
,但是每个类别的标题都紧挨着附加。一定是由于循环造成的,但是将其移出循环不会加载类别div。
然后我在语句中插入了.append
,但它只显示第一个类别标题(在本例中为“动物”)。
是否可以将“类别标题”附加到被单击的任何模式中?我是否可以获取该“类别标题”的索引并附加它,就像我原来的一样?
.eq(i).append
let _library,
_categories;
getCategories(){
return _categories;
}
loadCategories(){
let categs = _categories
let htmlElems = "";
for (var i = 0; i < categs.length; i++) {
htmlElems += "<div class='cat-box cat-num-" + i + "'data-target='#modal-id' data-toggle='modal'>" + categs[i].Title + "</div>";
$(".modal-title").eq(i).append(categs[i].Title); // ---------- //
}
let container = document.querySelector("div.top-training");
container.innerHTML = htmlElems;
console.log(container);
}
$(document).on("click", '.cat-box', function(val) {
console.log('.cat-box clicked')
let cat = $(this).data('category'),
desc = $(this).find("span").last().text();
// irrelevant code
答案 0 :(得分:1)
您可以尝试以下方法解决此问题。
首先,将数据属性data-title
添加到元素.cat-box
中以保留标题数据。
htmlElems += "<div class='cat-box cat-num-" + i + "'data-target='#modal-id' data-toggle='modal' data-title='"+ categs[i].Title +"'>" + categs[i].Title + "</div>";
当模式打开时,读取标题数据并将其放入.modal-title
中,并在关闭时将其置空。
$(document).find('#modal-id').off('shown.bs.modal').on('shown.bs.modal', function (e) {
$(document).find('.modal-title').html( $(e.relatedTarget).data('title'));
}).on('hidden.bs.modal', function (e) {
$(document).find('.modal-title').html('');
});
您可以从bootstrap site
查看详细的示例