Javascript 从控制器中滚动AngularJS不起作用

Javascript 从控制器中滚动AngularJS不起作用,javascript,angularjs,scroll,Javascript,Angularjs,Scroll,我只想滚动到顶部 我试过这个: $window.scrollTo(0,0) 这不起作用,window.scrollTo(0,0)也不起作用。然后我试着: $location.hash('top')//眼前 $anchorScroll() 那也没用。 我见过一些用于滚动的自定义角度模块,但我真的不想为这么简单的东西使用更多的代码,这些东西无论如何都应该可以工作。也许我的控制器/视图有问题 这是我的控制器: .controller('PageCtrl', function ($scope, $sta

我只想滚动到顶部

我试过这个:

$window.scrollTo(0,0)

这不起作用,window.scrollTo(0,0)也不起作用。然后我试着:

$location.hash('top')//眼前

$anchorScroll()

那也没用。 我见过一些用于滚动的自定义角度模块,但我真的不想为这么简单的东西使用更多的代码,这些东西无论如何都应该可以工作。也许我的控制器/视图有问题

这是我的控制器:

.controller('PageCtrl', function ($scope, $stateParams, $window, $http, $ionicLoading, $ionicPopup, $timeout, $anchorScroll, $rootScope, $location, $compile) {

var controller = this;

$rootScope.$on('$stateChangeStart',
    function (event, toState, toParams, fromState, fromParams, options) {
        if (toState.name == 'app.page') {
            if(fromState.name != 'app.page2')
                controller.init();
        }
    });

this.init = function () { 
    $ionicLoading.show({
        content: 'Logging in',
        animation: 'fade-in',
        showBackdrop: true,
        maxWidth: 200,
        showDelay: 1
    });

    $window.scrollTo(0, 0); //should it be here?
    window.scrollTo(0, 0); //not working at all??

    .....


}


......
模板:

<style>
    ...
</style>

<ion-view view-title="something" ng-init="pgctrl.init()">
    <ion-nav-buttons side="right">
        <button class="button button-calm" ng-click="pgctrl.init()">
            New
        </button>
    </ion-nav-buttons>
    <ion-content class="has-header" padding="true">
        ...
    </ion-content>
</ion-view>

如果您不反对使用jQuery(无论如何,您都在使用jQuery),您可以尝试这样做

在这个.init中

$('body, html').animate({scrollTop: $('.view').offset().top}, "slow");
模板

<ion-view view-title="something" class="view" ng-init="pgctrl.init()">
    <ion-nav-buttons side="right">
        <button class="button button-calm" ng-click="pgctrl.init()">
            New
        </button>
    </ion-nav-buttons>
    <ion-content class="has-header" padding="true">
        ...
    </ion-content>
</ion-view>

新的
...

如果您不反对使用jQuery(无论如何,您都在使用jQuery),您可以尝试这样做

在这个.init中

$('body, html').animate({scrollTop: $('.view').offset().top}, "slow");
模板

<ion-view view-title="something" class="view" ng-init="pgctrl.init()">
    <ion-nav-buttons side="right">
        <button class="button button-calm" ng-click="pgctrl.init()">
            New
        </button>
    </ion-nav-buttons>
    <ion-content class="has-header" padding="true">
        ...
    </ion-content>
</ion-view>

新的
...

我找到了一个解决方案。我发现,由于顶部有ion导航按钮,任何“滚动到顶部”都会认为我们已经在那里了,因此它无法工作。在寻找让爱奥尼亚进行滚动的方法后,我发现:

$ionicScrollDelegate.scrollTop(true); //where true says whether to animate it

成功了。也要感谢帮助解决这个问题的人

我找到了一个解决办法。我发现,由于顶部有ion导航按钮,任何“滚动到顶部”都会认为我们已经在那里了,因此它无法工作。在寻找让爱奥尼亚进行滚动的方法后,我发现:

$ionicScrollDelegate.scrollTop(true); //where true says whether to animate it
    $('html, body').animate({scrollTop: '0px'}, 400);
成功了。也要感谢帮助解决这个问题的人

    $('html, body').animate({scrollTop: '0px'}, 400);
您可以简单地使用它。400是以毫秒为单位的时间延迟。0px是垂直滚动位置


您可以简单地使用它。400是以毫秒为单位的时间延迟。0px是垂直滚动位置。

对窗口滚动事件使用
stateChangeSuccess
如何,以便在转换完成时触发?对窗口滚动事件使用
statechangesuccessuccess
如何,以便在转换完成时触发完成?