我正在尝试使用 jQuery 插件来替换 Angular 2 中一些动态元素中的默认滚动条。
这些元素是使用ngFor
循环创建的,也就是说,我无法将 jQuery 事件附加到这些创建的元素上。
应用程序有时会改变一个Observable
在 内部循环的对象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;
}
但是这个解决方案并不能让我满意。
有什么更好的方法建议吗?
谢谢