在famous-angular中,是否可以访问scrollview.sync.on(事件)?

时间:2014-10-09 00:16:37

标签: famo.us famous-angular

现在我从其表面有一个带有fa-pipe-from的滚动视图,并且工作正常,我尝试了几种方法来收听来自scrollview的事件。

一种方法是在滚动视图中添加fa-pipe-to

<fa-scroll-view fa-pipe-from="resultsViewHandler" fa-pipe-to="scrollViewHandler">

指向事件处理程序

$scope.scrollViewHandler = new EventHandler();

但是没有来自此处理程序的事件

$scope.scrollViewHandler.on("start",function( e ){
    console.log( e ); 
}); // is never called

我在另一个stackoverflow中看到了 - link - 这个问题提出了一个不起作用的解决方案:

$famous.find('fa-scroll-view')[0].renderNode.sync.on('start', function(event) {
    console.log('start');
});

有关如何实现这一目标的任何建议吗?

编辑:显然fa-pipe-to按预期工作,但滚动视图未发出所有事件。有效的事件是:onEdge, offEdge, settle, pageChange,您可以通过将scrollview传递给如上所述的空事件处理程序并在其上侦听这些事件来使用它们。不起作用的事件是:start, update, end, resize,不幸的是我最需要的事件。

1 个答案:

答案 0 :(得分:0)

嘿,我在链接中回答了这个问题

我给了我的scrollview一个ID

<fa-scroll-view id="footer-scrollview" fa-pipe-from="footerScrollHandler"></fa-scroll-view>

能够听到这样的事件:

var scrollView = $famous.find('#footer-scrollview')[0].renderNode,
                scrollViewHandler = scrollView.sync
            ;
            scrollViewHandler.on('start', function(event) {
                console.log('start');
            });

&#39;更新&#39;并且&#39;结束&#39;事件也有效。我还在应用程序的其他地方使用了第二个scrollview(使用不同的ID)并使用相同的策略并且工作正常