我正在构建一个具有Coverflow效果的滑块,为此我使用了jquery-flipster插件。
我可以导入它并使它像演示一样工作,但是当我想使用*ngFor
指令动态地进行操作时,结果只是一个没有Coverflow效果的简单列表。
我做了这样的工作版本:
<div id="coverflow">
<ul class="flip-items">
<li>
<img src="../../../img/text1.gif">
</li>
<li>
<img src="../../../img/text2.gif">
</li>
<li>
<img src="../../../img/text3.gif">
</li>
<li>
<img src="../../../img/text4.gif">
</li>
<li>
<img src="../../../img/text5.gif">
</li>
<li>
<img src="../../../img/text6.gif">
</li>
</ul>
</div>
但是有了*ngFor
指令,我得到了:
代码 :
<div id="coverflow">
<ul class="flip-items">
<li *ngFor="let tab of tabs">
<img [src]="tab.url">
</li>
</ul>
</div>
tabs
是一个数组,我在其中存储所有图片的url(在JSON文件中)。
该ngOnInit()
方法在生命周期中为时过早,无法调用。$('...').flipster()
此时,已经注入了组件的依赖项,但尚未生成DOM,因此,当您调用flipster()
查询时,它的问题将返回空,并且插件无法执行任何操作。
您应该使用ngAfterViewInit()
生命周期方法,一旦通过角度配置了视图和内容,该方法就会被调用。有关所有挂钩的概述,请参阅docs。
最后,如果您的基础列表将要全部更改,那么您将需要将更改通知到flipster插件。我不确定这是否像$('...').flipster()
再次调用一样简单,或者是否有其他事情需要您跟踪更改。flipster文档似乎没有提到这种情况。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句