我是jQuery的新手,原来我需要在我的有角项目中使用此插件http://www.bacubacu.com/colresizable/。
我可以看到它在第一次创建组件时起作用,但是一旦该组件被破坏并再次创建,它就无法工作。
<div class="row shop-list" *ngIf="data && data.names.length > 0">
<div class="table-responsive">
<table [ngClass]="{'header-fixed': headerFixed}" class="table table-striped table-borderless">
....
</table>
</div>
</div>
如您所见,仅当数据对象包含某些名称时,才会显示可调整大小的表。
在我的component.ts文件中,我具有以下内容。
@Input('data') data: mockData;
和
ngOnChanges(changes: SimpleChanges) {
if (changes.data.currentValue) {
this.data = changes.data.currentValue;
setTimeout(() => {
(<any>jQuery('table[class="table table-striped table-borderless"]')).colResizable({
liveDrag: true,
hoverCursor: 'col-resize',
dragCursor: 'col-resize',
minWidth: 114,
});
});
}
}
鉴于此,我的问题是开始时提到的问题。如果我进入页面,我可以看到可调整大小的表格正常工作,但是如果我返回然后重新进入页面,则表格无法调整大小,甚至光标也没有变化。即使我不离开页面,但我更改了数据值并给它一个空值,以便不显示该表,然后给它一些值以使其应被显示,但它似乎出现了,但又不能调整大小。
我认为这个问题与动态加载组件有关,并且在执行jquery代码时可能没有任何表元素,正如我在这里jQuery not working when I load dynamic component in Angular所读到的, 但我不知道如何将其应用于我的问题。
一些帮助将不胜感激,我在这里很迷路。