jQuery插件仅在创建角度组件时有效

时间:2018-11-05 12:52:41

标签: javascript jquery angular typescript

我是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所读到的, 但我不知道如何将其应用于我的问题。

一些帮助将不胜感激,我在这里很迷路。

0 个答案:

没有答案