javascript - 在 Angular(9) 中使用前 Angular、DOM 操作 Javascript 的正确方法是什么?
问题描述
尽管 Angular 已经成熟,但仍有许多有用的组件和实用程序库还没有 Angular 包装器。
我目前正在寻找一个名为Swiper的用于添加图像轮播的方法,它使用非常好的(但也非常前 Angular)语法来初始化图像轮播。(它实际上有一个第三方包装器,但我想了解如何构建我自己的):
Swiper(前角)HTML
<!-- Slider main container -->
<div class="swiper-container">
<!-- Additional required wrapper -->
<div class="swiper-wrapper">
<!-- Slides -->
<div class="swiper-slide">Slide 1</div>
<div class="swiper-slide">Slide 2</div>
<div class="swiper-slide">Slide 3</div>
...
</div>
<!-- If we need pagination -->
<div class="swiper-pagination"></div>
<!-- If we need navigation buttons -->
<div class="swiper-button-prev"></div>
<div class="swiper-button-next"></div>
<!-- If we need scrollbar -->
<div class="swiper-scrollbar"></div>
</div>
Swiper Javascript API
var mySwiper = new Swiper('.swiper-container', {
speed: 400,
spaceBetween: 100
});
将其集成到 Angular 中的最佳方法是什么?
我想我可以应付强迫这一点的实际情况。我真正感兴趣的是要做什么Angular Way
?什么方法不会弄乱渲染周期等?
这种方法正确吗?
## mycomponent.ts
import { Component, OnInit, ViewChild, ElementRef, AfterViewChecked } from '@angular/core';
@Component({
selector: 'app-home-hero',
templateUrl: './home-hero.component.html',
styleUrls: ['./home-hero.component.scss']
})
export class HomeHeroComponent implements OnInit, AfterViewInit {
constructor() { }
// Attach the DOM element with the container to a variable
// that we can reference later
@ViewChild('swipercontainer', {read: ElementRef})
swipercontainer: ElementRef;
// once the view has been initialised, run the Swiper functionality
ngAfterViewInit() {
new Swiper(this.swipercontainer, {
speed: 400,
spaceBetween: 100
});
}
}
## mycomponent.html
<div #swipercontainer class="swiper-container">
<!-- Additional required wrapper -->
<div class="swiper-wrapper">
<!-- Slides -->
<div class="swiper-slide">Slide 1</div>
<div class="swiper-slide">Slide 2</div>
<div class="swiper-slide">Slide 3</div>
...
</div>
<!-- If we need pagination -->
<div class="swiper-pagination"></div>
<!-- If we need navigation buttons -->
<div class="swiper-button-prev"></div>
<div class="swiper-button-next"></div>
<!-- If we need scrollbar -->
<div class="swiper-scrollbar"></div>
</div>
注意我没有运行这个脚本,所以几乎可以肯定是语法错误——我更感兴趣的是这种方法是否正确
解决方案
推荐阅读
- django - 如何使用我的 React-Native 应用程序中的 Apisauce 刷新 Django-Rest-Framework 提供的 JWT?
- javascript - Webpack 大一新生在大块周围挖掘光芒
- sql - 如何在 phpmyadmin 中重置自动增量?
- python - Pytorch 错误:输入应为标量类型 Long 但发现 Float
- textures - OpenGL中阴影的深度值
- sql-server - 从返回两组数据的存储过程中将数据插入表中
- firebase - 如何在flutter中基于其他集合document.id从集合firebase中获取价值
- javascript - 是否可以在浏览器上使用 javascript 文件重用另一个功能
- c++ - 为什么我不能将数组名称作为指针引用传递?
- python - 类 OfferSerializer 缺少“Meta.model”属性