我 在自定义组件中使用jQuery-Knob。经过大量搜索和尝试/未命中尝试之后,我能够初始化旋钮的唯一方法就是将jQuery
函数包含在setTimeout
内,并使用this来表示http://jsfiddle.net/9t5qapog/2/。
constructor() {
console.log('Hello SsdKnob Component');
setTimeout(() => {
$(".dial").knob();
}, 0)
}
但是如果觉得有点hacky并且可能不稳定? (我不确定因为某种比赛条件我是否会遇到问题)。
有更好/推荐的方法吗?
我尝试过没有成功:
ionViewLoaded() {
$(".dial").knob();
}
和
AfterViewInit() {
$(".dial").knob();
}
答案 0 :(得分:6)
AfterViewInit() {
应该是
ngAfterViewInit() {
或者您也可以使用
ngAfterContentInit() {
在视图和投影内容准备就绪后运行。
如果jQuery-Knob
进行了一些异步初始化,这可能还不够。然后,您应该检查组件在完成初始化时是否发出事件。 setTimeout()
应该是最后的选择。