2017-03-29 36 views
0

我目前在使用EmberJS路由器和外部库时遇到困难。 使用EmberJS路由器,路由功能完美工作。 此外,组件中的外部库的包含也按预期工作。EmberJS路由器和外部库

但是两者的组合都不起作用。

详细信息:库(pdf.js)正在操作DOM并在滚动文档时插入锚标签。这些锚标签工作正常。但是,如果我尝试“捕捉”事件并使用EmberJS路由功能,那么它不起作用! 我无法在DidRender()函数中创建eventlistener,并使用preventDefault,因为在执行DidRender期间元素不存在。

有没有人遇到同样的问题,或者可能有解决方案?

干杯, 弗朗茨

回答

0

我假设你正在使用的组件,

初始化3,第三方的lib里面didInsertElement挂钩,而不是DidRender

DOM已准备好在该钩子中,您可以使用this.$()来评估组件HTML元素。

这是什么意思?

但是,如果我尝试“捕捉”事件并使用EmberJS路由功能,它不起作用!

DOM操作操作都是同步操作。在didInsertElement挂钩中绑定您自己的处理程序,但请密切关注您的this上下文。

+0

是的,我已经初始化了didInsertElement中的lib,但由于lib正在修改DOM,所以我遇到了上述问题。 –

+0

你能解释一下上面的引用是什么意思吗? –