此错误在此处提及:in ionic changing route causes "TypeError: Cannot read property 'scrollTo' of null"
答案说这个bug在beta-13中得到修复,但是我使用1.0.0-rc.1并且仍然出现了这个bug。
就我而言,导航回使用$ionicScrollDelegate.scrollTop()
更新到rc.1后是否有其他人收到此错误?
编辑:
我发现如果我的视图加载时没有自动调用$ionicScrollDelegate.scrollTop()
,则错误不会出现。我是否应该在等待合适时间的特定离子事件中呼叫scrollTop()
?
答案 0 :(得分:6)
有同样的问题,即使使用v1.0.0“铀 - 独角兽”。
将滚动调用包装到$ timeout帮助 - 这就是我的代码中的样子:
$timeout(function() {
$ionicScrollDelegate.scrollTo(scrollPosition.left, scrollPosition.top);
}, 0);
答案 1 :(得分:1)
你可以把它放在
中$ionicPlatform.ready(function () {
$ionicScrollDelegate.scrollTop();
})
答案 2 :(得分:0)
为了它的价值,我在这个帖子here上看到了这个解决方案,它适用于我的版本1.0.0-beta.14
如果无法升级到版本1.0.0-beta.14,则可以使用以下内容更改ionic-bundle.js文件:
大约39910行:
Arg 1 is: This has ; bad stuff
大约39813行:
this.scrollTop = function(shouldAnimate) {
this.resize().then(function() {
if(typeof scrollView !== 'undefined' && scrollView !== null){
scrollView.scrollTo(0, 0, !!shouldAnimate);
}
});
};
答案 3 :(得分:0)
我迟到了但是得到了同样的错误,但通过调用滚动顶部元素:
var scrollTop = e.detail.scrollTop;
而是:
var scrollTop = $ionicScrollDelegate.getScrollPosition().top;
并使用以下内容修复我:
config
我也使用js滚动,因为它似乎更适合使用scrolla-sista插件,所以我在我的应用程序开始时 $ionicConfigProvider.scrolling.jsScrolling(true);
块中有以下内容
Whether to use JS or Native scrolling. Defaults to native scrolling. Setting this to true has the same effect as setting each ion-content to have overflow-scroll='false'.
他们的docs state:
tools:replace="android:icon"
我希望这有助于某人
答案 4 :(得分:0)
请更改
e.detail.scrollTop
到
e.target.scrollTop
然后这将工作