ngFor之后的Angular 2火灾事件
我正在尝试使用jQuery插件替换Angular 2中某些动态元素中的默认滚动条。
这些元素是使用ngFor
循环创建的,也就是说我无法将jQuery事件附加到创建的元素上。
在某些时候,应用程序会改变一个Observable
对象,该对象在ngFor
中ngFor
以呈现视图。
现在,我想知道Angular何时完成绘制我的元素,以便我可以运行jQuery插件。
- 我不想在HTML模板中包含任何javascript。
- 我不想使用
ngAfterViewInit
,因为这个钩子被触发了太多次 - 我不想实现基于setTimeout的解决方案(我认为它不可靠)
我通过使用以下自定义Pipe
找到了一个解决方案:在模板的ngFor
周期结束时,我写道:
{{i | FireStoreEventPipe:'EVENT_TO_BE_FIRED'}}
FireStoreEventPipe
位置如下:
transform(obj: any, args:any[]) { var event = args[0]; //Fire event return null; }
但是这个解决方案并不能让我满意。
有什么更好的方法吗?
谢谢
我有类似的问题。 我正在使用angular2 rc 1。
我通过创建一个新组件解决了它(一个指令对我没用)。
import { Component, Input, Output, EventEmitter } from '@angular/core'; @Component({ selector: 'islast', template: '' }) export class LastDirective { @Input() isLast: boolean; @Output() onLastDone: EventEmitter = new EventEmitter (); ngOnInit() { if (this.isLast) this.onLastDone.emit(true); } }
然后我在我想要的组件中导入作为子组件的指令:
directives: [LastDirective],
在html中:
当然还有实现modalMembersDone()
- Jquery无法工作在角度6错误:ENOENT:没有这样的文件或目录,打开’… \ node_modules \ jquery \ dist \ jquery.min.js’
- zone.js:140 Uncaught TypeError:无法读取属性’remove’
- 如何关闭Angular 4中的Accordion中的所有菜单
- 使用Angular2的语义UI – 如何在组件中设置jQuery的侧栏设置?
- 访问jquery中的angular2变量
- Angular – 是否可以为一个组件加载jquery插件?
- 什么是在角度2内使用jquery小部件的最佳方法?
- 如何在Angular 4中多次重复jQuery下拉列表小部件?
- 将AOS库与Angular4应用程序集成