无法在Ionic和Angular中实现Jquery代码

时间:2018-06-26 07:07:31

标签: jquery angular ionic-framework ionic3

我正在使用Ionic 3 / Anuglar 5,试图在组件中为一个很高的桌子设置一个浮动的水平滚动条。我遇到了这个解决方案,应该可以很好地工作。 Floating horizontal scroll bar for html table

http://jsfiddle.net/cowboy/45rEs/show/

我遇到的问题是我不知道如何或确切地在我的组件中实现以下代码:

$('.your-div').floatingScrollbar();

到目前为止,我已经将js插件导入到我的索引中:

<script src="assets/jquery.ba-floatingscrollbar.min.js"></script>

我只是不知道该怎么做?

import { Component } from '@angular/core';
@Component({
  selector: 'tall-table',
  templateUrl: 'tall-table.html'
})
export class TallTableComponent {

  constructor() {
  }

  /*
  ** name: Ng On Init
  ** desc: 
  */
  ngOnInit(): void { 
  }

  /*
  ** name: Destroy
  ** desc: Unsubscribe
  */
  ngOnDestroy(): void {
  }

}

tall-table.html

<div id="horz-scroll-wrapper" style="width: 300px; overflow: scroll">
    <div style="height: 100%;">
        <table class='sample'>
            <tbody>
                <tr *ngFor="let row of [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26]">
                    <td >abcdefghijklmnopqrstuvwxyz</td><td >ABCDEFGHIJKLMNOPQRSTUVWXYZ</td><td >1234567890</td><td >0987654321</td><td >abcdefghijklmnopqrstuvwxyz</td><td >ABCDEFGHIJKLMNOPQRSTUVWXYZ</td><td >1234567890</td><td >0987654321</td>
                </tr>
            </tbody>
        </table>
    </div>
</div>

1 个答案:

答案 0 :(得分:1)

您要做的第一件事是在Angular项目中设置jQuery(如果尚未完成)。要将jQuery与Angular一起使用,您将必须使用npm安装jQuery。

您可以引用以下链接来在Angular项目中设置jQuery:

https://medium.com/@swarnakishore/how-to-include-and-use-jquery-in-angular-cli-project-592e0fe63176

https://stackoverflow.com/a/44653848/4140916

完成此操作后,应将相应的jQuery放入 ngAfterViewInit 生命周期挂钩中,然后它应该可以工作。

ngOnInit(): void { 
   $('.your-div').floatingScrollbar();
}

您可以在此处阅读有关生命周期挂钩的更多信息: https://angular.io/guide/lifecycle-hooks

如果仍然不起作用,则应尝试使用一些npm软件包来浮动滚动条(专门为Angular构建),如下所示: https://www.npmjs.com/package/ngx-scrollbar