将外部.js / .css导入angular4 app

时间:2018-01-26 15:37:04

标签: javascript jquery angular

我试图在我的角度应用程序中使用owl.carousel,这里的目标是什么。

https://owlcarousel2.github.io/OwlCarousel2/demos/mousewheel.html

我采取的步骤是:

  • 从owl-carousel网站

  • 下载了拉链
  • 将它们粘贴到../ node_modules / owlCarousel /

  • 不需要在index.html上添加.css和.js文件,因为它是一个内部模块(可以在node_modules上找到)

在angular-cli.json上,我在脚本上添加了那些.js文件的路径

# view.py
def signup(request):
    if request.method == 'POST':
        form = SignupForm(request.POST)
        if form.is_valid():
            user = form.save(commit=False)
            user.is_active = False

            # validate some conditions to Country choice, if you need
            user.country = Country.objects.get(id=form.cleaned_data.get("country_temp"))
            user.save()

我在菜单组件上使用旋转木马的问题,问题是当我在ngInit()menu.compontent.ts上调用功能时:

"scripts": [
            "../node_modules/owlCarousel/dist/owl.carousel.js",
            "../node_modules/owlCarousel/dist/owl.carousel.min.js",
....

它在owlCarousel()上给出了一个错误,说" owlCarousel在类型' jQuery'上不存在。

我是否想在index.ts上导出一些东西,用于导出共享文件夹的所有组件?或者我需要在menu.component.ts上导入一些东西,如果有的话,是什么?

继承我的menu.compontent.ts:

$(document).ready(function(){
  $(".owl-carousel").owlCarousel();
});

2 个答案:

答案 0 :(得分:1)

首先不要同时加载.js / min.js& .css / min.js,因为你正在加载同一件事的两个版本。

其次,你不是在编写打字稿,而是在不必要地用jquery污染你的角度。以这种方式使用角度是没有意义的。建议不要以这种方式与DOM交互

使用专门针对角度编写的库,并遵循角度最佳实践,例如。 Ng Bootstrap或NGX bootstrap。否则只需使用html和jquery以及你的猫头鹰库。

https://ng-bootstrap.github.io/#/components/carousel/examples

https://valor-software.com/ngx-bootstrap/#/carousel

答案 1 :(得分:0)

问题是人们从Angular项目开始,如果没有很好地集成,那么jQuery会导致问题。这就是人们创建集成这些jQuery解决方案的npm包的原因。 https://www.npmjs.com/package/angular2-carousel