【发布时间】:2020-02-25 16:10:17
【问题描述】:
我应该使用这个第三方框架,并且必须在 Angular 初始化后对其进行初始化。
我已经尝试将它添加到我的 index.html:
<body>
...
<script>
document.addEventListener('DOMContentLoaded', () => {
console.log('DKFDS Initialized', DKFDS);
DKFDS.init();
});
</script>
</body>
但这不起作用。
所以我尝试将其添加到 app.component.ts 中的 ngOnInit() 中:
ngOnInit() {
document.addEventListener('DOMContentLoaded', () => {
console.log('DKFDS Initialized', DKFDS);
DKFDS.init();
});
}
还是没有运气:-(
我可以让它工作的唯一方法是使用 jQuery 调用 init() 函数:
ngOnInit() {
$(() => {
console.log('DKFDS Initialized', DKFDS);
DKFDS.init();
});
}
编辑:我也尝试过 ngAfterViewInit(),但结果同样令人失望......
所以我的问题是:如何在没有 jQuery 的纯 Angular 应用程序中完成这项工作?
我制作了一个堆栈闪电战来试图说明这个问题。单击“溢出菜单”会弹出一个菜单:https://stackblitz.com/edit/angular-ubsvkt
【问题讨论】:
-
你试过 ngAfterViewInit 吗?
-
在
ngAfterViewInit中调用你的函数,因为DOMContentLoaded相当于ngAfterViewInit -
更新的 OP:ngAfterViewInit() 也不起作用。
标签: javascript jquery angular