我遇到滚动绑定问题。我没有运气就尝试使用scroll binding和event listeners。使用jquery也不起作用。我试过的任何其他事件都按预期工作,但是使用滚动它几乎没有任何效果。没有错误,没有消息..我错过了什么?
好吧我犯了一个错误,并没有把它放在app.js和app.html中,如示例中所提到的那样,但是下面有一层没有滚动事件来捕获元素。如果我把scroll.trigger放在那里就可以了。
新问题: 可以在儿童视图中触发滚动吗?
例如:假设您在2条路线上有2个视图模型,并且您希望一个触发滚动事件而另一个不触发。有人能指出我正确的方向吗?
答案 0 :(得分:0)
可以检查一下吗? website for detail
答案 1 :(得分:0)
我发现错误导致了我原来的问题 - 这是有问题的描述。
为了回答我的第二个问题,我使用了这个解决方案:
<强> app.html 强>
<div class="page-host" scroll.trigger="handleScrollEvent($event) & debounce:200">
<router-view></router-view>
</div>
<强> app.js 强>
export class App {
configureRouter(config, router) {
config.title = 'Title';
config.map([
{ route: ['', 'first'], name: 'first', moduleId: './first', nav: true, title: 'First route' },
{ route: ['second'], name: 'second', moduleId: './second', nav: true, title: 'Second route' }
]);
this.router = router;
}
handleScrollEvent(e) {
// if not on specified route
if(this.router.currentInstruction.config.name !== 'second') {
return;
}
// if scrolled under defined pixels
if(e.target.scrollTop > 100) {
$('body').find('#toolbar').addClass('fixed');
} else {
$('body').find('#toolbar').removeClass('fixed');
}
}
}
我不知道它有多干净但它有效。随意采取其他解决方案。